This patch allows for subclassing JS Arrays with the correct prototype chain on the created objects.
Created attachment 268225 [details] Patch
Last 500 characters of output: "__ZN3JSC12PrototypeMap12addPrototypeEPNS_8JSObjectE", referenced from: __ZNK3JSC14JSGlobalObject45arrayStructureForIndexingTypeDuringAllocationERNS_2VMEhNS_7JSValueE in IDBBindingUtilities.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Created attachment 268250 [details] Patch
Created attachment 268301 [details] Patch
JSCBuiltins.cpp Creating library C:/cygwin/home/buildbot/WebKit/WebKitBuild/Release/lib32/JavaScriptCore.lib and object C:/cygwin/home/buildbot/WebKit/WebKitBuild/Release/lib32/JavaScriptCore.exp AdaptiveInferredPropertyValueWatchpointBase.obj : error LNK2019: unresolved external symbol "public: __thiscall JSC::JSValue::operator bool(void)const " (??BJSValue@JSC@@QBE_NXZ) referenced in function "public: static class JSC::Structure * __cdecl JSC::Structure::createSubclassStructure(class JSC::VM &,class JSC::Structure *,class JSC::JSValue)" (?createSubclassStructure@Structure@JSC@@SAPAV12@AAVVM@2@PAV12@VJSValue@2@@Z) [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj] AdaptiveInferredPropertyValueWatchpointBase.obj : error LNK2019: unresolved external symbol "public: class JSC::JSObject * __thiscall JSC::JSValue::getObject(void)const " (?getObject@JSValue@JSC@@QBEPAVJSObject@2@XZ) referenced in function "public: static class JSC::Structure * __cdecl JSC::Structure::createSubclassStructure(class JSC::VM &,class JSC::Structure *,class JSC::JSValue)" (?createSubclassStructure@Structure@JSC@@SAPAV12@AAVVM@2@PAV12@VJSValue@2@@Z) [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj] C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\bin32\JavaScriptCore.dll : fatal error LNK1120: 2 unresolved externals [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj] Generating ../../DerivedSources/WebKit/autoversion.h
Created attachment 268314 [details] Patch
Hopefully, including JSCJSValueInlines.h fixes the problem but the patch should be done other than the windows build issue.
Created attachment 268324 [details] Benchmark results
Comment on attachment 268314 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=268314&action=review > Source/JavaScriptCore/runtime/JSGlobalObject.h:732 > + return ArrayAllocationProfile::updateLastAllocationFor(profile, JSArray::create(vm, initialLength >= MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH ? globalObject->arrayStructureForIndexingTypeDuringAllocation(vm, ArrayWithArrayStorage, prototype) : globalObject->arrayStructureForProfileDuringAllocation(vm, profile, prototype), initialLength)); Please split this over multiple lines. The ternary operator is a bit messy on this line.
Comment on attachment 268314 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=268314&action=review >> Source/JavaScriptCore/runtime/JSGlobalObject.h:732 >> + return ArrayAllocationProfile::updateLastAllocationFor(profile, JSArray::create(vm, initialLength >= MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH ? globalObject->arrayStructureForIndexingTypeDuringAllocation(vm, ArrayWithArrayStorage, prototype) : globalObject->arrayStructureForProfileDuringAllocation(vm, profile, prototype), initialLength)); > > Please split this over multiple lines. The ternary operator is a bit messy on this line. Fair point. Fixed.
Committed r194612: <http://trac.webkit.org/changeset/194612>
*** Bug 145155 has been marked as a duplicate of this bug. ***