-
fpizlo@apple.com authored
prototype when inlined https://bugs.webkit.org/show_bug.cgi?id=89821 Source/JavaScriptCore: Reviewed by Geoffrey Garen. Fixes all array allocations to use the right structure, and hence the right prototype. Adds inlining of new Array(...) with a non-zero number of arguments. Optimizes allocations of empty arrays. * dfg/DFGAbstractState.cpp: (JSC::DFG::AbstractState::execute): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleConstantInternalFunction): * dfg/DFGCCallHelpers.h: (JSC::DFG::CCallHelpers::setupArgumentsWithExecState): (CCallHelpers): * dfg/DFGNodeType.h: (DFG): * dfg/DFGOperations.cpp: * dfg/DFGOperations.h: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * runtime/JSArray.h: (JSC): (JSC::constructArray): * runtime/JSGlobalObject.h: (JSC): (JSC::constructArray): LayoutTests: Rubber stamped by Geoffrey Garen. * fast/js/dfg-cross-global-object-inline-new-array-expected.txt: Added. * fast/js/dfg-cross-global-object-inline-new-array-literal-expected.txt: Added. * fast/js/dfg-cross-global-object-inline-new-array-literal-with-variables-expected.txt: Added. * fast/js/dfg-cross-global-object-inline-new-array-literal-with-variables.html: Added. * fast/js/dfg-cross-global-object-inline-new-array-literal.html: Added. * fast/js/dfg-cross-global-object-inline-new-array-with-elements-expected.txt: Added. * fast/js/dfg-cross-global-object-inline-new-array-with-elements.html: Added. * fast/js/dfg-cross-global-object-inline-new-array-with-size-expected.txt: Added. * fast/js/dfg-cross-global-object-inline-new-array-with-size.html: Added. * fast/js/dfg-cross-global-object-inline-new-array.html: Added. * fast/js/script-tests/cross-global-object-inline-global-var.js: (done): * fast/js/script-tests/dfg-cross-global-object-inline-new-array-literal-with-variables.js: Added. (foo): (done): (doit): * fast/js/script-tests/dfg-cross-global-object-inline-new-array-literal.js: Added. (foo): (done): (doit): * fast/js/script-tests/dfg-cross-global-object-inline-new-array-with-elements.js: Added. (foo): (done): (doit): * fast/js/script-tests/dfg-cross-global-object-inline-new-array-with-size.js: Added. (foo): (done): (doit): * fast/js/script-tests/dfg-cross-global-object-inline-new-array.js: Added. (foo): (done): (doit): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
6c89cd3f