Patch forthcoming.
Created attachment 277410 [details] work in progress
Created attachment 277424 [details] a bit more I'm starting to have a plan.
I'm having a lot of fun with this. It took me a while to figure out the right idioms. I believe that we can make most of the things in JSGlobalObject lazy. I'm using a combination of the following two approaches. - LazyProperty<>. This is like WriteBarrier<> but it allows you to initialize it lazily. You can do: m_myLazyProperty.initLater([] (const Initializer& init) { init.set(...); }); You're required to use a stateless (i.e. "[]") lambda, and we will assert this. It successfully converts the lambda into a function pointer and stuffs it into itself. Then later when you call get(), it will invoke this lambda by extracting it from the function pointer. Crucially, the initLater() method compiles down to a store of a constant function pointer into the pointer field inside m_myLazyProperty. - New Lookup attributes. It's now possible to put various kinds of property creation callbacks in a Lookup hashtable. This can be married to a LazyProperty<> so that the laziness of initialization is coordinated between the two. When this is all put together, it should be easy to write code in JSGlobalObject that lazily constructs everything. I'm playing with this now.
Created attachment 277440 [details] some more
Created attachment 277539 [details] it's getting weird But it will be even weirder soon.
Created attachment 277580 [details] moar
Created attachment 277590 [details] getting close Still need to change all of the getters and the visitChildren. Then I might be done.
Created attachment 277640 [details] it compiles a bit more Still lots of compiler errors though
Created attachment 277649 [details] OMG JSGlobalObject.cpp compiles Wow
Created attachment 277654 [details] 2x faster to create JSGlobalObject I'm sure it's still completely broken, but it is 2x faster on my microbenchmark.
*** Bug 157044 has been marked as a duplicate of this bug. ***
Created attachment 277656 [details] less wrong Still dealing with basics.
Created attachment 277752 [details] totally awesome It passes tests!
Created attachment 277762 [details] rebased
Attachment 277762 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/WTF/wtf/StdLibExtras.h:67: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:389: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:403: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:410: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:429: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:437: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:442: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:446: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:451: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:456: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:463: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:473: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:477: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:577: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:582: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:586: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:591: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1132: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 32 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277770 [details] with fixes
Attachment 277770 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:389: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:403: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:410: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:429: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:437: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:442: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:446: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:451: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:456: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:463: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:473: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:477: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:577: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:582: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:586: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:591: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1132: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 31 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277820 [details] with more fixes
Attachment 277820 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:389: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:403: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:410: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:429: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:437: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:442: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:446: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:451: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:456: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:463: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:473: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:477: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:577: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:582: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:586: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:591: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1132: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 31 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277821 [details] and now, even less broken!
Attachment 277821 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:389: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:403: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:410: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:429: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:437: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:442: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:446: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:451: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:456: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:463: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:473: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:477: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:577: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:582: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:586: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:591: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1132: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 31 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277822 [details] less broken
Attachment 277822 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:389: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:403: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:410: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:429: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:437: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:442: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:446: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:451: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:456: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:463: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:473: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:477: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:577: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:582: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:586: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:591: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1132: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 31 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 277822 [details] less broken Attachment 277822 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1246343 Number of test failures exceeded the failure limit.
Created attachment 277827 [details] Archive of layout-test-results from ews114 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-yosemite Platform: Mac OS X 10.10.5
Comment on attachment 277822 [details] less broken Attachment 277822 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/1246366 Number of test failures exceeded the failure limit.
Created attachment 277828 [details] Archive of layout-test-results from ews103 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-yosemite Platform: Mac OS X 10.10.5
Comment on attachment 277822 [details] less broken Attachment 277822 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/1246382 Number of test failures exceeded the failure limit.
Comment on attachment 277822 [details] less broken Attachment 277822 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/1246373 New failing tests: js/dom/global-constructors-attributes-idb.html jquery/core.html js/dom/global-constructors-attributes-dedicated-worker.html fast/dom/Window/window-properties-configurable.html
Created attachment 277829 [details] Archive of layout-test-results from ews107 for mac-yosemite-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews107 Port: mac-yosemite-wk2 Platform: Mac OS X 10.10.5
Created attachment 277830 [details] Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.4
Comment on attachment 277822 [details] less broken I'm still fixing bugs revealed by WebCore and debug.
Created attachment 277866 [details] more Fixes a bunch of bugs where the lazy initialization of structures clashed with our allocator's isInitializing assertion. It's good that we have this assertion because this was a real bug. This is subtly wrong: JSBlah* blah = allocateCell<things>(stuff, globalObject->blahStructure(), more); In the case that blahStructure() is doing a LazyProperty<Structure>::get(), because by the time we call it, we are already in the middle of allocating. The heap may already contain a half-initialized JSBlah. If we GC'd inside LazyProperty::get(), we'd have a bad time. Fortunately, there were only a handful of places where we did this: - Some of them were accessing structures that shouldn't have been lazy, like nullGetterFunction and friends. I was wrong to make them lazy because it turns out that we would always trigger their initialization transitively from JSGlobalObject::init(). - The rest just needed to be changed to do this: Structure* structure = globalObject->blahStructure(); JSBlah* blah = allocateCell<things>(stuff, structure, more); There are only a few such places, so it's not so bad. Note that this is still crashing in debug for me, but less so. I'll leave it up to reviewers if they want to look at the patch in this current form. I suspect that there is still a long tail of small fixes like this one. That said, the patch now passes all tests in release for me (WebKit and JSC tests).
Attachment 277866 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1134: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 37 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 277866 [details] more Attachment 277866 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1251705 Number of test failures exceeded the failure limit.
Created attachment 277867 [details] Archive of layout-test-results from ews113 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews113 Port: mac-yosemite Platform: Mac OS X 10.10.5
Created attachment 277871 [details] maybe it's done now
Attachment 277871 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1134: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 41 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277873 [details] it's more done than ever before! I just found out that this makes SunSpider run 1% faster. Makes sense.
Attachment 277873 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1134: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 42 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277875 [details] even more fixes Dealing with fallout from the change in JSWithScope API.
Attachment 277875 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1134: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 43 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277882 [details] even more fixes
Attachment 277882 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:1134: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 43 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277885 [details] removed some Heap.cpp debugging hacks
Attachment 277885 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 28 in 42 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 277885 [details] removed some Heap.cpp debugging hacks Attachment 277885 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1253338 Number of test failures exceeded the failure limit.
Created attachment 277887 [details] Archive of layout-test-results from ews116 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews116 Port: mac-yosemite Platform: Mac OS X 10.10.5
Created attachment 277888 [details] even better Fixes even more cases of the lazy structure getter being invoked during object initialization.
Attachment 277888 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:103: The parameter name "initializer" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:397: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:436: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:440: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:445: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:450: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:457: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:461: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:467: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:471: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:571: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:576: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:580: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:585: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "scope" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 30 in 45 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 277911 [details] even betterer Juggled the template instantiations around a bit to make LazyProperty<> nicer.
Created attachment 277918 [details] rebased Wow, rebasing this patch is so annoying.
Attachment 277918 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:94: The parameter name "owner" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:95: The parameter name "owner" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:348: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:353: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:357: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:367: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:371: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:377: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:385: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:405: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:412: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:439: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:444: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:448: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:453: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:458: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:465: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:469: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:475: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:479: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:579: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:584: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:588: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:593: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "scope" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 32 in 45 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 277918 [details] rebased View in context: https://bugs.webkit.org/attachment.cgi?id=277918&action=review r=me > Source/JavaScriptCore/ChangeLog:96 > + this property, and when it needs to be initialized, Loolup will assume you have a Typo: Loolup => Lookup
(In reply to comment #54) > Comment on attachment 277918 [details] > rebased > > View in context: > https://bugs.webkit.org/attachment.cgi?id=277918&action=review > > r=me > > > Source/JavaScriptCore/ChangeLog:96 > > + this property, and when it needs to be initialized, Loolup will assume you have a > > Typo: Loolup => Lookup Fixed!
Is this a JSBench speed up?
(In reply to comment #56) > Is this a JSBench speed up? Haven't measured yet. I think I'll let the bots do that for me.
Landed in http://trac.webkit.org/changeset/200383
(In reply to comment #57) > (In reply to comment #56) > > Is this a JSBench speed up? > > Haven't measured yet. I think I'll let the bots do that for me. BTW, now that I think about it, this may not affect in-browser performance if the DOM's subclasses of JSGlobalObject do super expensive things. I don't know if that's the case or not. I'll watch the bots.
(In reply to comment #58) > Landed in http://trac.webkit.org/changeset/200383 It made all tests crash on ARMv7 Thumb2, see bug157340 for details.
Comment on attachment 277918 [details] rebased View in context: https://bugs.webkit.org/attachment.cgi?id=277918&action=review > Source/JavaScriptCore/runtime/LazyProperty.h:81 > + auto callFunc = bitwise_cast<ElementType* (*)(const Initializer&)>(m_pointer & ~lazyTag); > + return callFunc(Initializer(const_cast<OwnerType*>(owner), *const_cast<LazyProperty*>(this))); Removing the least significant bit is completely incorrect on ARMv7 Thumb2. The 1 bit means for BLX remaining in Thumb2 mode, but 0 bit makes the CPU switch to ARM mode, but there are Thumb2 instructions on that address.
FUI, we started to experience crashes on iOS PLT since around this patch landed. I haven't confirmed yet the crashes are caused by this change but it is the most likely culprit.
(In reply to comment #62) > FUI, we started to experience crashes on iOS PLT since around this patch > landed. I haven't confirmed yet the crashes are caused by this change but it > is the most likely culprit. I see you landed a follow-up crash fix. However, we still see the crashes on iOS on r200415.
Reverted r200383 and r200406 for reason: Seems to have caused crashes on iOS / ARMv7s Committed r200416: <http://trac.webkit.org/changeset/200416>
(In reply to comment #64) > Reverted r200383 and r200406 for reason: > > Seems to have caused crashes on iOS / ARMv7s > > Committed r200416: <http://trac.webkit.org/changeset/200416> I am working on getting you a symbolicated stack trace.
(In reply to comment #65) > (In reply to comment #64) > > Reverted r200383 and r200406 for reason: > > > > Seems to have caused crashes on iOS / ARMv7s > > > > Committed r200416: <http://trac.webkit.org/changeset/200416> > > I am working on getting you a symbolicated stack trace. I sent you the full trace by mail but here is the short version: Exception Type: EXC_BAD_INSTRUCTION (SIGILL) Exception Codes: 0x0000000000000001, 0x00000000f012680a Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 JavaScriptCore 0x00fd8270 JSC::JSFunction* JSC::LazyProperty<JSC::JSGlobalObject, JSC::JSFunction>::callFunc<JSC::JSGlobalObject::init(JSC::VM&)::$_4>(JSC::LazyProperty<JSC::JSGlobalObject, JSC::JSFunction>::Initializer const&) + 16 1 JavaScriptCore 0x00d38104 JSC::ArrayPrototype::finishCreation(JSC::VM&, JSC::JSGlobalObject*) + 4576 2 JavaScriptCore 0x00d36efe JSC::ArrayPrototype::create(JSC::VM&, JSC::JSGlobalObject*, JSC::Structure*) + 78 3 JavaScriptCore 0x00fd2544 JSC::JSGlobalObject::init(JSC::VM&) + 3580 4 WebCore 0x01b984f8 WebCore::JSDOMGlobalObject::finishCreation(JSC::VM&, JSC::JSObject*) + 60 5 WebCore 0x01be553c WebCore::JSDOMWindowBase::finishCreation(JSC::VM&, WebCore::JSDOMWindowShell*) + 40 6 WebCore 0x01be1196 WebCore::JSDOMWindow::finishCreation(JSC::VM&, WebCore::JSDOMWindowShell*) + 14 7 WebCore 0x01bf2b32 WebCore::JSDOMWindowShell::setWindow(WTF::PassRefPtr<WebCore::DOMWindow>) + 450 8 WebCore 0x01bf2948 WebCore::JSDOMWindowShell::finishCreation(JSC::VM&, WTF::PassRefPtr<WebCore::DOMWindow>) + 20 9 WebCore 0x0206b1cc WebCore::ScriptController::createWindowShell(WebCore::DOMWrapperWorld&) + 172 10 WebCore 0x0206ba08 WebCore::ScriptController::initScript(WebCore::DOMWrapperWorld&) + 32 11 WebKit 0x0029cf84 WebKit::WebFrame::jsContextForWorld(WebKit::InjectedBundleScriptWorld*) + 24
Regressions on non-optimized builds with GCC, as explained in bug #157338, are due to callFunc instantiations not being aligned. Thumb2 failures are due to the lazy tag conflicting with the arch-specific use of the bottom bit. Force-aligning callFunc() to 16-byte boundaries and shifting the tags to the second and third lowest bits fixes the issues.
(In reply to comment #67) > Regressions on non-optimized builds with GCC, as explained in bug #157338, > are due to callFunc instantiations not being aligned. Thumb2 failures are > due to the lazy tag conflicting with the arch-specific use of the bottom bit. > > Force-aligning callFunc() to 16-byte boundaries and shifting the tags to the > second and third lowest bits fixes the issues. Yup. It was a mistake for me to use pointer tagging on function pointers. I have an idea of how to fix that. Working on it now.
(In reply to comment #68) > (In reply to comment #67) > > Regressions on non-optimized builds with GCC, as explained in bug #157338, > > are due to callFunc instantiations not being aligned. Thumb2 failures are > > due to the lazy tag conflicting with the arch-specific use of the bottom bit. > > > > Force-aligning callFunc() to 16-byte boundaries and shifting the tags to the > > second and third lowest bits fixes the issues. > > Yup. It was a mistake for me to use pointer tagging on function pointers. > I have an idea of how to fix that. Working on it now. I think I have a glorious fix. LazyProperty<>::m_pointer will now point to a global variable that points to the function. That way, we can do pointer tagging in m_pointer because a pointer to a global pointer variable is guaranteed to be at least 4-bytes aligned and it will not have anything like the Thumb2 tag in it. Testing this now...
*** Bug 157333 has been marked as a duplicate of this bug. ***
*** Bug 157338 has been marked as a duplicate of this bug. ***
*** Bug 157340 has been marked as a duplicate of this bug. ***
Created attachment 278115 [details] patch for relanding
Created attachment 278121 [details] patch for relanding
Attachment 278121 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:98: The parameter name "owner" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyProperty.h:99: The parameter name "owner" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:343: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:347: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:352: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:356: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:366: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:370: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:376: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:384: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:405: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:412: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:431: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:439: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:444: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:448: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:453: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:458: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:465: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:469: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:475: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:479: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:579: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:584: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:588: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:593: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:45: The parameter name "prototype" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructure.h:59: The parameter name "constructor" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/LazyClassStructureInlines.h:38: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.h:34: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/debugger/DebuggerScope.h:41: The parameter name "scope" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 32 in 48 files If any of these errors are false positives, please file a bug against check-webkit-style.
Landed in http://trac.webkit.org/changeset/200430