Bug 145763

Summary: Many builtin objects that are prototypes forget to set their isPrototype bit
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: benjamin, cdumez, darin, ews-watchlist, fpizlo, ggaren, joepeck, keith_miller, kling, mark.lam, msaboff, saam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
ews-watchlist: commit-queue-
Archive of layout-test-results from ews202 for win-future none

Description Yusuke Suzuki 2015-06-08 11:50:02 PDT
For example, BooleanPrototype, DatePrototype, ErrorPrototype, FunctionPrototype etc. do not have `vm.prototypeMap.addPrototype(this)` setting phase.
Comment 1 Geoffrey Garen 2015-06-08 12:39:06 PDT
Maybe we should move the responsibility for declaring prototypes into the Structure finishCreation function. That way, we're guaranteed to know about all prototypes.

Who calls addPrototype for DOM prototypes?
Comment 2 Yusuke Suzuki 2018-05-05 01:29:11 PDT
prototypeMap is removed from the tree.
Comment 3 Saam Barati 2018-05-05 02:56:41 PDT
(In reply to Yusuke Suzuki from comment #2)
> prototypeMap is removed from the tree.

That doesn't remove the need to set their isPrototype bit.
Comment 4 Yusuke Suzuki 2018-05-05 23:22:44 PDT
Created attachment 339672 [details]
Patch
Comment 5 EWS Watchlist 2018-05-05 23:27:23 PDT
Comment on attachment 339672 [details]
Patch

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

New failing tests:
(JS) JSTestCallTracer.cpp
(JS) JSTestCEReactions.cpp
(JS) JSTestCEReactionsStringifier.cpp
(JS) JSTestClassWithJSBuiltinConstructor.cpp
(JS) JSTestCustomConstructorWithNoInterfaceObject.cpp
(JS) JSTestActiveDOMObject.cpp
(JS) JSTestDOMJIT.cpp
(JS) JSTestEnabledBySetting.cpp
(JS) JSTestEventConstructor.cpp
(JS) JSTestEventTarget.cpp
(JS) JSTestException.cpp
(JS) JSTestGenerateIsReachable.cpp
(JS) JSTestGlobalObject.h
(JS) JSTestIndexedSetterNoIdentifier.cpp
(JS) JSTestIndexedSetterThrowingException.cpp
(JS) JSTestIndexedSetterWithIdentifier.cpp
(JS) JSTestInterface.cpp
(JS) JSTestInterfaceLeadingUnderscore.cpp
(JS) JSTestIterable.cpp
(JS) JSTestJSBuiltinConstructor.cpp
(JS) JSMapLike.cpp
(JS) JSTestMediaQueryListListener.cpp
(JS) JSTestNamedAndIndexedSetterNoIdentifier.cpp
(JS) JSTestNamedAndIndexedSetterThrowingException.cpp
(JS) JSTestNamedAndIndexedSetterWithIdentifier.cpp
(JS) JSTestNamedConstructor.cpp
(JS) JSTestNamedDeleterNoIdentifier.cpp
(JS) JSTestNamedDeleterThrowingException.cpp
(JS) JSTestNamedDeleterWithIdentifier.cpp
(JS) JSTestNamedDeleterWithIndexedGetter.cpp
(JS) JSTestNamedGetterCallWith.cpp
(JS) JSTestNamedGetterNoIdentifier.cpp
(JS) JSTestNamedGetterWithIdentifier.cpp
(JS) JSTestNamedSetterNoIdentifier.cpp
(JS) JSTestNamedSetterThrowingException.cpp
(JS) JSTestNamedSetterWithIdentifier.cpp
(JS) JSTestNamedSetterWithIndexedGetter.cpp
(JS) JSTestNamedSetterWithIndexedGetterAndSetter.cpp
(JS) JSTestNamedSetterWithOverrideBuiltins.cpp
(JS) JSTestNamedSetterWithUnforgableProperties.cpp
(JS) JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp
(JS) JSTestNode.cpp
(JS) JSTestObj.cpp
(JS) JSTestOverloadedConstructors.cpp
(JS) JSTestOverloadedConstructorsWithSequence.cpp
(JS) JSTestOverrideBuiltins.cpp
(JS) JSTestPluginInterface.cpp
(JS) JSTestPromiseRejectionEvent.cpp
(JS) JSReadOnlyMapLike.cpp
(JS) JSInterfaceName.cpp
(JS) JSTestSerialization.cpp
(JS) JSTestSerializationIndirectInheritance.cpp
(JS) JSTestSerializationInherit.cpp
(JS) JSTestSerializationInheritFinal.cpp
(JS) JSTestSerializedScriptValueInterface.cpp
(JS) JSTestStringifier.cpp
(JS) JSTestStringifierAnonymousOperation.cpp
(JS) JSTestStringifierNamedOperation.cpp
(JS) JSTestStringifierOperationImplementedAs.cpp
(JS) JSTestStringifierOperationNamedToString.cpp
(JS) JSTestStringifierReadOnlyAttribute.cpp
(JS) JSTestStringifierReadWriteAttribute.cpp
(JS) JSTestTypedefs.cpp
Comment 6 Yusuke Suzuki 2018-05-05 23:31:25 PDT
Created attachment 339673 [details]
Patch
Comment 7 EWS Watchlist 2018-05-06 07:00:04 PDT
Comment on attachment 339673 [details]
Patch

Attachment 339673 [details] did not pass win-ews (win):
Output: http://webkit-queues.webkit.org/results/7585488

New failing tests:
http/tests/security/local-video-source-from-remote.html
Comment 8 EWS Watchlist 2018-05-06 07:00:15 PDT
Created attachment 339681 [details]
Archive of layout-test-results from ews202 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews202  Port: win-future  Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Comment 9 Yusuke Suzuki 2020-06-12 19:05:09 PDT
Comment on attachment 339673 [details]
Patch

This is already fixed in 196315
Comment 10 Yusuke Suzuki 2020-06-12 19:05:18 PDT

*** This bug has been marked as a duplicate of bug 196315 ***