RESOLVED FIXED 183429
[JSC] Add inherits<T>(VM&) leveraging JSCast fast path
https://bugs.webkit.org/show_bug.cgi?id=183429
Summary [JSC] Add inherits<T>(VM&) leveraging JSCast fast path
Yusuke Suzuki
Reported 2018-03-07 23:12:27 PST
[JSC] Add inherits<T>(VM&) leveraging JSCast fast path
Attachments
Patch (156.72 KB, patch)
2018-03-07 23:15 PST, Yusuke Suzuki
no flags
Patch (156.73 KB, patch)
2018-03-08 00:38 PST, Yusuke Suzuki
no flags
Patch (160.23 KB, patch)
2018-03-08 01:19 PST, Yusuke Suzuki
no flags
Patch (160.45 KB, patch)
2018-03-08 01:39 PST, Yusuke Suzuki
no flags
Patch (160.51 KB, patch)
2018-03-08 01:48 PST, Yusuke Suzuki
no flags
Archive of layout-test-results from ews112 for mac-sierra (434.79 KB, application/zip)
2018-03-08 03:02 PST, EWS Watchlist
no flags
Patch (162.24 KB, patch)
2018-03-08 03:10 PST, Yusuke Suzuki
mark.lam: review+
Yusuke Suzuki
Comment 1 2018-03-07 23:15:59 PST
EWS Watchlist
Comment 2 2018-03-07 23:25:46 PST
Attachment 335266 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 81 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 3 2018-03-08 00:38:34 PST
EWS Watchlist
Comment 4 2018-03-08 00:42:00 PST
Attachment 335273 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 81 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 5 2018-03-08 01:19:16 PST
EWS Watchlist
Comment 6 2018-03-08 01:23:11 PST
Attachment 335279 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 81 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 7 2018-03-08 01:39:13 PST
EWS Watchlist
Comment 8 2018-03-08 01:42:24 PST
Attachment 335282 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 81 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 9 2018-03-08 01:48:51 PST
EWS Watchlist
Comment 10 2018-03-08 01:51:54 PST
Attachment 335285 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 81 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 11 2018-03-08 03:02:15 PST
Comment on attachment 335285 [details] Patch Attachment 335285 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/6853687 Number of test failures exceeded the failure limit.
EWS Watchlist
Comment 12 2018-03-08 03:02:17 PST
Created attachment 335286 [details] Archive of layout-test-results from ews112 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews112 Port: mac-sierra Platform: Mac OS X 10.12.6
Yusuke Suzuki
Comment 13 2018-03-08 03:10:56 PST
EWS Watchlist
Comment 14 2018-03-08 03:17:27 PST
Attachment 335287 [details] did not pass style-queue: ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 2 in 82 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 15 2018-03-08 07:54:49 PST
Comment on attachment 335287 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=335287&action=review r=me. Nice work. > Source/JavaScriptCore/runtime/JSType.h:121 > +static const uint32_t LastObjectType = MaxJSType; I think you should put your ChangeLog comment near here to explain why you use MaxJSType and not the last type in the enum list. BTW, do we still need LastJSCObjectType? Are the other uses of LastJSCObjectType correct (in light of the bug you found)? > Source/WebCore/bindings/js/JSEventTargetCustom.cpp:60 > + if (value.inherits<JS##interfaceName>(vm)) \ nit: the amount of whitespace at the end seems arbitrary. Might as well trim it so that the \ is aligned with the line above, or just 1 space after the end of this line.
Yusuke Suzuki
Comment 16 2018-03-08 08:01:50 PST
Comment on attachment 335287 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=335287&action=review Thank you! >> Source/JavaScriptCore/runtime/JSType.h:121 >> +static const uint32_t LastObjectType = MaxJSType; > > I think you should put your ChangeLog comment near here to explain why you use MaxJSType and not the last type in the enum list. BTW, do we still need LastJSCObjectType? Are the other uses of LastJSCObjectType correct (in light of the bug you found)? Yes, LastJSCObjectType is now used in JSDollarVM to create extended object types by using `LastJSCObjectType + 1`. I think we can use the highest bit + type number instead, but in the meantime, it is used, and I keep it now in this patch. And the other use of LastJSCObjectType is correct :) >> Source/WebCore/bindings/js/JSEventTargetCustom.cpp:60 >> + if (value.inherits<JS##interfaceName>(vm)) \ > > nit: the amount of whitespace at the end seems arbitrary. Might as well trim it so that the \ is aligned with the line above, or just 1 space after the end of this line. OK, I'll just put one space before `\` since it is easy to keep it.
Yusuke Suzuki
Comment 17 2018-03-08 08:06:56 PST
Radar WebKit Bug Importer
Comment 18 2018-03-08 08:07:15 PST
Keith Miller
Comment 19 2018-03-08 14:52:11 PST
Comment on attachment 335287 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=335287&action=review > Source/JavaScriptCore/ChangeLog:17 > + We also fix the implementation of jsDynamicCast for JSObject since it uses LastJSCObjectType. > + The embedder can add their extended object types after that. Oh really? where does this happen?
Yusuke Suzuki
Comment 20 2018-03-08 17:38:08 PST
(In reply to Keith Miller from comment #19) > Comment on attachment 335287 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=335287&action=review > > > Source/JavaScriptCore/ChangeLog:17 > > + We also fix the implementation of jsDynamicCast for JSObject since it uses LastJSCObjectType. > > + The embedder can add their extended object types after that. > > Oh really? where does this happen? You can check WebCore::JSElementType for example ;)
Yusuke Suzuki
Comment 21 2018-03-09 10:02:54 PST
Note You need to log in before you can comment on or make changes to this bug.