Bug 158178

Summary: Deprecate remaining uses of Lookup getStatic*, use HasStaticPropertyTable instead.
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: JavaScriptCoreAssignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal CC: buildbot, cdumez, cgarcia, commit-queue, ggaren, keith_miller, mark.lam, msaboff, rniwa, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 158294, 158295    
Bug Blocks:    
Attachments:
Description Flags
Fix
buildbot: commit-queue-
Archive of layout-test-results from ews100 for mac-yosemite
none
Archive of layout-test-results from ews106 for mac-yosemite-wk2
none
Archive of layout-test-results from ews121 for ios-simulator-wk2
none
Archive of layout-test-results from ews112 for mac-yosemite
none
Fix for GlobalObject
none
Part 2 – DOM type instance objects
none
Part 2 – DOM type instance objects darin: review+

Description Gavin Barraclough 2016-05-27 23:25:55 PDT
As of bug #158059 most JSC static table property access no longer requires getOwnPropertySlot to be overridden. Port remaining calls to the getStatic* functions in Lookup.h over to the new mechanism.
Comment 1 Gavin Barraclough 2016-05-28 00:00:01 PDT
Created attachment 280024 [details]
Fix
Comment 2 Build Bot 2016-05-28 00:49:34 PDT
Comment on attachment 280024 [details]
Fix

Attachment 280024 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1395386

Number of test failures exceeded the failure limit.
Comment 3 Build Bot 2016-05-28 00:49:38 PDT
Created attachment 280029 [details]
Archive of layout-test-results from ews100 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 4 Build Bot 2016-05-28 01:01:26 PDT
Comment on attachment 280024 [details]
Fix

Attachment 280024 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1395407

New failing tests:
http/tests/security/cross-origin-window-property-access.html
fast/dom/beforeload/frame-before-load.html
fast/dom/beforeload/video-before-load.html
webarchive/test-link-rel-subresource-beforeload.html
imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html
fast/encoding/parser-tests-50.html
fast/dom/unforgeable-attributes.html
fast/dom/Window/forbid-showModalDialog.html
fast/dom/beforeload/script-before-load.html
fast/dom/beforeload/image-before-load.html
Comment 5 Build Bot 2016-05-28 01:01:30 PDT
Created attachment 280030 [details]
Archive of layout-test-results from ews106 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5
Comment 6 Build Bot 2016-05-28 01:05:44 PDT
Comment on attachment 280024 [details]
Fix

Attachment 280024 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1395413

New failing tests:
http/tests/security/cross-origin-window-property-access.html
fast/dom/beforeload/frame-before-load.html
fast/dom/beforeload/video-before-load.html
webarchive/test-link-rel-subresource-beforeload.html
fast/replaced/table-percent-height.html
imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html
fast/encoding/parser-tests-50.html
fast/dom/unforgeable-attributes.html
fast/dom/Window/forbid-showModalDialog.html
fast/dom/beforeload/script-before-load.html
fast/dom/beforeload/image-before-load.html
Comment 7 Build Bot 2016-05-28 01:05:48 PDT
Created attachment 280031 [details]
Archive of layout-test-results from ews121 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.4
Comment 8 Build Bot 2016-05-28 01:12:57 PDT
Comment on attachment 280024 [details]
Fix

Attachment 280024 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1395422

New failing tests:
http/tests/security/cross-origin-window-property-access.html
fast/dom/beforeload/frame-before-load.html
fast/dom/beforeload/video-before-load.html
webarchive/test-link-rel-subresource-beforeload.html
imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html
fast/encoding/parser-tests-50.html
fast/dom/unforgeable-attributes.html
fast/dom/Window/forbid-showModalDialog.html
fast/dom/beforeload/script-before-load.html
fast/dom/beforeload/image-before-load.html
Comment 9 Build Bot 2016-05-28 01:13:00 PDT
Created attachment 280033 [details]
Archive of layout-test-results from ews112 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 10 Gavin Barraclough 2016-06-01 19:04:29 PDT
Okay, there is a bug here, I'm basically uncovering some preexisting crazy related to how global object property get precedence interacts with how assumption in how function declarations in the symbol table override existing non-var properties.

I'm going to break a fix for this out into a separate bug. I'll probably also break out a tweak to the showModalDialog hack in JDOMWindowCustom.
Comment 11 Gavin Barraclough 2016-06-05 16:25:56 PDT
Created attachment 280565 [details]
Fix for GlobalObject
Comment 12 Gavin Barraclough 2016-06-05 17:58:40 PDT
Global object changes landed in r201702.
Comment 13 Gavin Barraclough 2016-06-05 22:17:14 PDT
Created attachment 280587 [details]
Part 2 – DOM type instance objects
Comment 14 Gavin Barraclough 2016-06-05 22:19:04 PDT
Created attachment 280588 [details]
Part 2 – DOM type instance objects
Comment 15 Darin Adler 2016-06-06 11:28:15 PDT
Comment on attachment 280588 [details]
Part 2 – DOM type instance objects

View in context: https://bugs.webkit.org/attachment.cgi?id=280588&action=review

> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1143
> +        push(@headerContent, "    static const bool hasStaticPropertyTable = true;\n\n");

constexpr maybe

> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1145
> +        push(@headerContent, "    static const bool hasStaticPropertyTable = false;\n\n");

Ditto.
Comment 16 Gavin Barraclough 2016-06-06 12:09:03 PDT
(In reply to comment #15)
> Comment on attachment 280588 [details]
> Part 2 – DOM type instance objects
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=280588&action=review
> 
> > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1143
> > +        push(@headerContent, "    static const bool hasStaticPropertyTable = true;\n\n");
> 
> constexpr maybe
> 
> > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1145
> > +        push(@headerContent, "    static const bool hasStaticPropertyTable = false;\n\n");
> 
> Ditto.

I'm going to land without that change - that would cause significant changes in the bindings tests results, I'd like to land the functional changes here separately. I also think I may be able to remove hasStaticPropertyTable altogether in a follow on patch. I'll track doing one or the other in bug #158431.
Comment 17 Gavin Barraclough 2016-06-06 12:10:02 PDT
Committed revision 201719.