Skip to content

Commit 8171f5e

Browse files
committed
Unreviewed, rolling out r200383 and r200406.
Seems to have caused crashes on iOS / ARMv7s Reverted changesets: "Speed up JSGlobalObject initialization by making some properties lazy" https://bugs.webkit.org/show_bug.cgi?id=157045 http://trac.webkit.org/changeset/200383 "REGRESSION(r200383): Setting lazily initialized properties across frame boundaries crashes" https://bugs.webkit.org/show_bug.cgi?id=157333 http://trac.webkit.org/changeset/200406 Canonical link: https://commits.webkit.org/175449@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@200416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent ac6fae9 commit 8171f5e

48 files changed

Lines changed: 413 additions & 1158 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎LayoutTests/ChangeLog‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
2016-05-04 Chris Dumez <cdumez@apple.com>
2+
3+
Unreviewed, rolling out r200383 and r200406.
4+
5+
Seems to have caused crashes on iOS / ARMv7s
6+
7+
Reverted changesets:
8+
9+
"Speed up JSGlobalObject initialization by making some
10+
properties lazy"
11+
https://bugs.webkit.org/show_bug.cgi?id=157045
12+
http://trac.webkit.org/changeset/200383
13+
14+
"REGRESSION(r200383): Setting lazily initialized properties
15+
across frame boundaries crashes"
16+
https://bugs.webkit.org/show_bug.cgi?id=157333
17+
http://trac.webkit.org/changeset/200406
18+
119
2016-05-04 Joanmarie Diggs <jdiggs@igalia.com>
220

321
AX: ARIA 'region' role is now a landmark; HTML 'section' element should be a landmark only if named

‎LayoutTests/js/dom/cross-window-put-math-expected.txt‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

‎LayoutTests/js/dom/cross-window-put-math.html‎

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎Source/JavaScriptCore/API/JSCallbackFunction.cpp‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2006, 2008, 2016 Apple Inc. All rights reserved.
2+
* Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
33
*
44
* Redistribution and use in source and binary forms, with or without
55
* modification, are permitted provided that the following conditions
@@ -58,8 +58,7 @@ void JSCallbackFunction::finishCreation(VM& vm, const String& name)
5858

5959
JSCallbackFunction* JSCallbackFunction::create(VM& vm, JSGlobalObject* globalObject, JSObjectCallAsFunctionCallback callback, const String& name)
6060
{
61-
Structure* structure = globalObject->callbackFunctionStructure();
62-
JSCallbackFunction* function = new (NotNull, allocateCell<JSCallbackFunction>(vm.heap)) JSCallbackFunction(vm, structure, callback);
61+
JSCallbackFunction* function = new (NotNull, allocateCell<JSCallbackFunction>(vm.heap)) JSCallbackFunction(vm, globalObject->callbackFunctionStructure(), callback);
6362
function->finishCreation(vm, name);
6463
return function;
6564
}

‎Source/JavaScriptCore/API/ObjCCallbackFunction.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
2+
* Copyright (C) 2013 Apple Inc. All rights reserved.
33
*
44
* Redistribution and use in source and binary forms, with or without
55
* modification, are permitted provided that the following conditions
@@ -62,7 +62,7 @@ class ObjCCallbackFunction : public InternalFunction {
6262
ObjCCallbackFunctionImpl* impl() const { return m_impl.get(); }
6363

6464
protected:
65-
ObjCCallbackFunction(VM&, Structure*, JSObjectCallAsFunctionCallback, JSObjectCallAsConstructorCallback, std::unique_ptr<ObjCCallbackFunctionImpl>);
65+
ObjCCallbackFunction(VM&, JSGlobalObject*, JSObjectCallAsFunctionCallback, JSObjectCallAsConstructorCallback, std::unique_ptr<ObjCCallbackFunctionImpl>);
6666

6767
private:
6868
static CallType getCallData(JSCell*, CallData&);

‎Source/JavaScriptCore/API/ObjCCallbackFunction.mm‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
2+
* Copyright (C) 2013 Apple Inc. All rights reserved.
33
*
44
* Redistribution and use in source and binary forms, with or without
55
* modification, are permitted provided that the following conditions
@@ -498,8 +498,8 @@ static JSObjectRef objCCallbackFunctionCallAsConstructor(JSContextRef callerCont
498498

499499
const JSC::ClassInfo ObjCCallbackFunction::s_info = { "CallbackFunction", &Base::s_info, 0, CREATE_METHOD_TABLE(ObjCCallbackFunction) };
500500

501-
ObjCCallbackFunction::ObjCCallbackFunction(JSC::VM& vm, JSC::Structure* structure, JSObjectCallAsFunctionCallback functionCallback, JSObjectCallAsConstructorCallback constructCallback, std::unique_ptr<ObjCCallbackFunctionImpl> impl)
502-
: Base(vm, structure)
501+
ObjCCallbackFunction::ObjCCallbackFunction(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSObjectCallAsFunctionCallback functionCallback, JSObjectCallAsConstructorCallback constructCallback, std::unique_ptr<ObjCCallbackFunctionImpl> impl)
502+
: Base(vm, globalObject->objcCallbackFunctionStructure())
503503
, m_functionCallback(functionCallback)
504504
, m_constructCallback(constructCallback)
505505
, m_impl(WTFMove(impl))
@@ -508,8 +508,7 @@ static JSObjectRef objCCallbackFunctionCallAsConstructor(JSContextRef callerCont
508508

509509
ObjCCallbackFunction* ObjCCallbackFunction::create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, const String& name, std::unique_ptr<ObjCCallbackFunctionImpl> impl)
510510
{
511-
Structure* structure = globalObject->objcCallbackFunctionStructure();
512-
ObjCCallbackFunction* function = new (NotNull, allocateCell<ObjCCallbackFunction>(vm.heap)) ObjCCallbackFunction(vm, structure, objCCallbackFunctionCallAsFunction, objCCallbackFunctionCallAsConstructor, WTFMove(impl));
511+
ObjCCallbackFunction* function = new (NotNull, allocateCell<ObjCCallbackFunction>(vm.heap)) ObjCCallbackFunction(vm, globalObject, objCCallbackFunctionCallAsFunction, objCCallbackFunctionCallAsConstructor, WTFMove(impl));
513512
function->finishCreation(vm, name);
514513
return function;
515514
}

‎Source/JavaScriptCore/CMakeLists.txt‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,6 @@ set(JavaScriptCore_SOURCES
740740
runtime/JSWeakSet.cpp
741741
runtime/JSWithScope.cpp
742742
runtime/JSWrapperObject.cpp
743-
runtime/LazyClassStructure.cpp
744743
runtime/LiteralParser.cpp
745744
runtime/Lookup.cpp
746745
runtime/MapConstructor.cpp

‎Source/JavaScriptCore/ChangeLog‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
2016-05-04 Chris Dumez <cdumez@apple.com>
2+
3+
Unreviewed, rolling out r200383 and r200406.
4+
5+
Seems to have caused crashes on iOS / ARMv7s
6+
7+
Reverted changesets:
8+
9+
"Speed up JSGlobalObject initialization by making some
10+
properties lazy"
11+
https://bugs.webkit.org/show_bug.cgi?id=157045
12+
http://trac.webkit.org/changeset/200383
13+
14+
"REGRESSION(r200383): Setting lazily initialized properties
15+
across frame boundaries crashes"
16+
https://bugs.webkit.org/show_bug.cgi?id=157333
17+
http://trac.webkit.org/changeset/200406
18+
119
2016-05-04 Yusuke Suzuki <utatane.tea@gmail.com>
220

321
Assertion failure for super() call in direct eval in method function

‎Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj‎

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1995,11 +1995,6 @@
19951995
DC17E81A1C9C91E9008A6AB3 /* CCallHelpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DC17E8161C9C802B008A6AB3 /* CCallHelpers.cpp */; };
19961996
DC2143071CA32E55000A8869 /* ICStats.h in Headers */ = {isa = PBXBuildFile; fileRef = DC2143061CA32E52000A8869 /* ICStats.h */; };
19971997
DC2143081CA32E58000A8869 /* ICStats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DC2143051CA32E52000A8869 /* ICStats.cpp */; };
1998-
DCF3D5691CD2946D003D5C65 /* LazyClassStructure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DCF3D5641CD29468003D5C65 /* LazyClassStructure.cpp */; };
1999-
DCF3D56A1CD29470003D5C65 /* LazyClassStructure.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF3D5651CD29468003D5C65 /* LazyClassStructure.h */; settings = {ATTRIBUTES = (Private, ); }; };
2000-
DCF3D56B1CD29472003D5C65 /* LazyClassStructureInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF3D5661CD29468003D5C65 /* LazyClassStructureInlines.h */; };
2001-
DCF3D56C1CD29475003D5C65 /* LazyProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF3D5671CD29468003D5C65 /* LazyProperty.h */; settings = {ATTRIBUTES = (Private, ); }; };
2002-
DCF3D56D1CD29476003D5C65 /* LazyPropertyInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF3D5681CD29468003D5C65 /* LazyPropertyInlines.h */; };
20031998
DE26E9031CB5DD0500D2BE82 /* BuiltinExecutableCreator.h in Headers */ = {isa = PBXBuildFile; fileRef = DE26E9021CB5DD0500D2BE82 /* BuiltinExecutableCreator.h */; };
20041999
DE26E9071CB5DEFB00D2BE82 /* BuiltinExecutableCreator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE26E9061CB5DD9600D2BE82 /* BuiltinExecutableCreator.cpp */; };
20052000
DE5A0A001BA3AC3E003D4424 /* IntrinsicEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE5A09FF1BA3AC3E003D4424 /* IntrinsicEmitter.cpp */; };
@@ -4209,11 +4204,6 @@
42094204
DC17E8161C9C802B008A6AB3 /* CCallHelpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCallHelpers.cpp; sourceTree = "<group>"; };
42104205
DC2143051CA32E52000A8869 /* ICStats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ICStats.cpp; sourceTree = "<group>"; };
42114206
DC2143061CA32E52000A8869 /* ICStats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ICStats.h; sourceTree = "<group>"; };
4212-
DCF3D5641CD29468003D5C65 /* LazyClassStructure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LazyClassStructure.cpp; sourceTree = "<group>"; };
4213-
DCF3D5651CD29468003D5C65 /* LazyClassStructure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyClassStructure.h; sourceTree = "<group>"; };
4214-
DCF3D5661CD29468003D5C65 /* LazyClassStructureInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyClassStructureInlines.h; sourceTree = "<group>"; };
4215-
DCF3D5671CD29468003D5C65 /* LazyProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyProperty.h; sourceTree = "<group>"; };
4216-
DCF3D5681CD29468003D5C65 /* LazyPropertyInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyPropertyInlines.h; sourceTree = "<group>"; };
42174207
DE26E9021CB5DD0500D2BE82 /* BuiltinExecutableCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuiltinExecutableCreator.h; sourceTree = "<group>"; };
42184208
DE26E9061CB5DD9600D2BE82 /* BuiltinExecutableCreator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BuiltinExecutableCreator.cpp; sourceTree = "<group>"; };
42194209
DE5A09FF1BA3AC3E003D4424 /* IntrinsicEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntrinsicEmitter.cpp; sourceTree = "<group>"; };
@@ -5506,11 +5496,6 @@
55065496
7EF6E0BB0EB7A1EC0079AFAF /* runtime */ = {
55075497
isa = PBXGroup;
55085498
children = (
5509-
DCF3D5641CD29468003D5C65 /* LazyClassStructure.cpp */,
5510-
DCF3D5651CD29468003D5C65 /* LazyClassStructure.h */,
5511-
DCF3D5661CD29468003D5C65 /* LazyClassStructureInlines.h */,
5512-
DCF3D5671CD29468003D5C65 /* LazyProperty.h */,
5513-
DCF3D5681CD29468003D5C65 /* LazyPropertyInlines.h */,
55145499
BCF605110E203EF800B9A64D /* ArgList.cpp */,
55155500
BCF605120E203EF800B9A64D /* ArgList.h */,
55165501
0FE0500C1AA9091100D33B33 /* ArgumentsMode.h */,
@@ -7142,7 +7127,6 @@
71427127
A5FD0074189B038C00633231 /* ConsoleTypes.h in Headers */,
71437128
0FFC99D1184EC8AD009C10AB /* ConstantMode.h in Headers */,
71447129
E354622B1B6065D100545386 /* ConstructAbility.h in Headers */,
7145-
DCF3D56D1CD29476003D5C65 /* LazyPropertyInlines.h in Headers */,
71467130
BC18C3F60E16F5CD00B34460 /* ConstructData.h in Headers */,
71477131
A57D23F21891B5B40031C7FA /* ContentSearchUtilities.h in Headers */,
71487132
52678F911A04177C006A306D /* ControlFlowProfiler.h in Headers */,
@@ -7786,7 +7770,6 @@
77867770
BC18C4520E16F5CD00B34460 /* LegacyProfiler.h in Headers */,
77877771
BC18C4310E16F5CD00B34460 /* Lexer.h in Headers */,
77887772
BC18C52E0E16FCE100B34460 /* Lexer.lut.h in Headers */,
7789-
DCF3D56B1CD29472003D5C65 /* LazyClassStructureInlines.h in Headers */,
77907773
FE187A021BFBE5610038BBCA /* JITMulGenerator.h in Headers */,
77917774
86D3B3C310159D7F002865E7 /* LinkBuffer.h in Headers */,
77927775
0F431738146BAC69007E3890 /* ListableHandler.h in Headers */,
@@ -7864,7 +7847,6 @@
78647847
86F3EEBD168CDE930077B92A /* ObjCCallbackFunction.h in Headers */,
78657848
86F3EEBF168CDE930077B92A /* ObjcRuntimeExtras.h in Headers */,
78667849
14CA958D16AB50FA00938A06 /* ObjectAllocationProfile.h in Headers */,
7867-
DCF3D56C1CD29475003D5C65 /* LazyProperty.h in Headers */,
78687850
BC18C4450E16F5CD00B34460 /* ObjectConstructor.h in Headers */,
78697851
996B73221BDA08EF00331B84 /* ObjectConstructor.lut.h in Headers */,
78707852
0FD3E40A1B618B6600C80E1E /* ObjectPropertyCondition.h in Headers */,
@@ -7880,7 +7862,6 @@
78807862
BC18C44B0E16F5CD00B34460 /* Parser.h in Headers */,
78817863
93052C350FB792190048FDC3 /* ParserArena.h in Headers */,
78827864
0FCCAE4516D0CF7400D0C65B /* ParserError.h in Headers */,
7883-
DCF3D56A1CD29470003D5C65 /* LazyClassStructure.h in Headers */,
78847865
A77F1825164192C700640A47 /* ParserModes.h in Headers */,
78857866
65303D641447B9E100D3F904 /* ParserTokens.h in Headers */,
78867867
0FF9CE741B9CD6D0004EDCA6 /* PolymorphicAccess.h in Headers */,
@@ -8946,7 +8927,6 @@
89468927
A54982031891D0B00081E5B8 /* EventLoop.cpp in Sources */,
89478928
FE1C0FFF1B194FD100B53FCA /* Exception.cpp in Sources */,
89488929
0F12DE0F1979D5FD0006FF4E /* ExceptionFuzz.cpp in Sources */,
8949-
DCF3D5691CD2946D003D5C65 /* LazyClassStructure.cpp in Sources */,
89508930
1429D8780ED21ACD00B89619 /* ExceptionHelpers.cpp in Sources */,
89518931
86CA032E1038E8440028A609 /* Executable.cpp in Sources */,
89528932
0FF054F91AC35B4400E5BE57 /* ExecutableAllocationFuzz.cpp in Sources */,

‎Source/JavaScriptCore/create_hash_table‎

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# (c) 2000-2002 by Harri Porten <porten@kde.org> and
66
# David Faure <faure@kde.org>
77
# Modified (c) 2004 by Nikolas Zimmermann <wildfox@kde.org>
8-
# Copyright (C) 2007, 2008, 2009, 2015-2016 Apple Inc. All rights reserved.
8+
# Copyright (C) 2007, 2008, 2009, 2015 Apple Inc. All rights reserved.
99
#
1010
# This library is free software; you can redistribute it and/or
1111
# modify it under the terms of the GNU Lesser General Public
@@ -97,15 +97,6 @@ while (<IN>) {
9797
my $put = "nullptr";
9898
$hasSetter = "true";
9999
push(@values, { "type" => "Accessor", "get" => $get, "put" => $put });
100-
} elsif ($att =~ m/CellProperty/) {
101-
my $property = $val;
102-
push(@values, { "type" => "CellProperty", "property" => $property });
103-
} elsif ($att =~ m/ClassStructure/) {
104-
my $property = $val;
105-
push(@values, { "type" => "ClassStructure", "property" => $property });
106-
} elsif ($att =~ m/PropertyCallback/) {
107-
my $cback = $val;
108-
push(@values, { "type" => "PropertyCallback", "cback" => $cback });
109100
} elsif (length($att)) {
110101
my $get = $val;
111102
my $put = "0";
@@ -307,14 +298,6 @@ sub output() {
307298
} elsif ($values[$i]{"type"} eq "Lexer") {
308299
$firstValue = $values[$i]{"value"};
309300
$secondValue = "0";
310-
} elsif ($values[$i]{"type"} eq "CellProperty" || $values[$i]{"type"} eq "ClassStructure") {
311-
$values[$i]{"property"} =~ /\A([a-zA-Z0-9_]+)::(.*)\Z/ or die;
312-
$firstValue = "OBJECT_OFFSETOF($1, $2)";
313-
$secondValue = "0";
314-
} elsif ($values[$i]{"type"} eq "PropertyCallback") {
315-
$firstCastStr = "static_cast<LazyPropertyCallback>";
316-
$firstValue = $values[$i]{"cback"};
317-
$secondValue = "0";
318301
}
319302

320303
my $intrinsic = "NoIntrinsic";

0 commit comments

Comments
 (0)