haikuwebkit/LayoutTests/js/arrowfunction-tdz-expected.txt

19 lines
364 B
Plaintext
Raw Permalink Normal View History

[ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical bind of this https://bugs.webkit.org/show_bug.cgi?id=144956 Source/JavaScriptCore: Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-08-17 Reviewed by Saam Barati. Added support of ES6 arrow function specific feature, lexical bind of this and no constructor. http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax In patch were implemented the following cases: this - variable |this| is point to the |this| of the function where arrow function is declared. Lexical bind of |this| constructor - the using of the command |new| for arrow function leads to runtime error call(), apply(), bind() - methods can only pass in arguments, but has no effect on |this| * CMakeLists.txt: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: * JavaScriptCore.xcodeproj/project.pbxproj: * bytecode/BytecodeList.json: * bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset): * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): * bytecode/ExecutableInfo.h: (JSC::ExecutableInfo::ExecutableInfo): (JSC::ExecutableInfo::isArrowFunction): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * bytecode/UnlinkedCodeBlock.h: (JSC::UnlinkedCodeBlock::isArrowFunction): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::generateFunctionCodeBlock): (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): (JSC::UnlinkedFunctionExecutable::codeBlockFor): * bytecode/UnlinkedFunctionExecutable.h: * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): (JSC::BytecodeGenerator::emitNewFunctionCommon): (JSC::BytecodeGenerator::emitNewFunctionExpression): (JSC::BytecodeGenerator::emitNewArrowFunctionExpression): (JSC::BytecodeGenerator::emitLoadArrowFunctionThis): * bytecompiler/BytecodeGenerator.h: * bytecompiler/NodesCodegen.cpp: (JSC::ArrowFuncExprNode::emitBytecode): * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock): * dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel): * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC): * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): * dfg/DFGNode.h: (JSC::DFG::Node::convertToPhantomNewFunction): (JSC::DFG::Node::hasCellOperand): (JSC::DFG::Node::isFunctionAllocation): * dfg/DFGNodeType.h: * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGPromotedHeapLocation.cpp: (WTF::printInternal): * dfg/DFGPromotedHeapLocation.h: * dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileLoadArrowFunctionThis): (JSC::DFG::SpeculativeJIT::compileNewFunctionCommon): (JSC::DFG::SpeculativeJIT::compileNewFunction): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGStoreBarrierInsertionPhase.cpp: * dfg/DFGStructureRegistrationPhase.cpp: (JSC::DFG::StructureRegistrationPhase::run): * ftl/FTLAbstractHeapRepository.cpp: * ftl/FTLAbstractHeapRepository.h: * ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile): * ftl/FTLIntrinsicRepository.h: * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::DFG::LowerDFGToLLVM::compileNode): (JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction): (JSC::FTL::DFG::LowerDFGToLLVM::compileLoadArrowFunctionThis): * ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR): * interpreter/Interpreter.cpp: * interpreter/Interpreter.h: * jit/CCallHelpers.h: (JSC::CCallHelpers::setupArgumentsWithExecState): Added 3 arguments version for windows build. * jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): * jit/JIT.h: * jit/JITInlines.h: (JSC::JIT::callOperation): * jit/JITOpcodes.cpp: (JSC::JIT::emit_op_load_arrowfunction_this): (JSC::JIT::emit_op_new_func_exp): (JSC::JIT::emitNewFuncExprCommon): (JSC::JIT::emit_op_new_arrow_func_exp): * jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_load_arrowfunction_this): * jit/JITOperations.cpp: * jit/JITOperations.h: * llint/LLIntOffsetsExtractor.cpp: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::setUpCall): * llint/LLIntSlowPaths.h: * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * parser/ASTBuilder.h: (JSC::ASTBuilder::createFunctionMetadata): (JSC::ASTBuilder::createArrowFunctionExpr): * parser/NodeConstructors.h: (JSC::BaseFuncExprNode::BaseFuncExprNode): (JSC::FuncExprNode::FuncExprNode): (JSC::ArrowFuncExprNode::ArrowFuncExprNode): * parser/Nodes.cpp: (JSC::FunctionMetadataNode::FunctionMetadataNode): * parser/Nodes.h: (JSC::ExpressionNode::isArrowFuncExprNode): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseFunctionBody): (JSC::Parser<LexerType>::parseFunctionInfo): * parser/SyntaxChecker.h: (JSC::SyntaxChecker::createFunctionMetadata): * runtime/Executable.cpp: (JSC::ScriptExecutable::newCodeBlockFor): * runtime/Executable.h: * runtime/JSArrowFunction.cpp: Added. (JSC::JSArrowFunction::destroy): (JSC::JSArrowFunction::create): (JSC::JSArrowFunction::JSArrowFunction): (JSC::JSArrowFunction::createWithInvalidatedReallocationWatchpoint): (JSC::JSArrowFunction::visitChildren): (JSC::JSArrowFunction::getConstructData): * runtime/JSArrowFunction.h: Added. (JSC::JSArrowFunction::allocationSize): (JSC::JSArrowFunction::createImpl): (JSC::JSArrowFunction::boundThis): (JSC::JSArrowFunction::createStructure): (JSC::JSArrowFunction::offsetOfThisValue): * runtime/JSFunction.h: * runtime/JSFunctionInlines.h: (JSC::JSFunction::JSFunction): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::arrowFunctionStructure): * tests/stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js: Added. * tests/stress/arrowfunction-activation-sink-osrexit-default-value.js: Added. * tests/stress/arrowfunction-activation-sink-osrexit.js: Added. * tests/stress/arrowfunction-activation-sink.js: Added. * tests/stress/arrowfunction-bound.js: Added. * tests/stress/arrowfunction-call.js: Added. * tests/stress/arrowfunction-constructor.js: Added. * tests/stress/arrowfunction-lexical-bind-this-1.js: Added. * tests/stress/arrowfunction-lexical-bind-this-2.js: Added. * tests/stress/arrowfunction-lexical-bind-this-3.js: Added. * tests/stress/arrowfunction-lexical-bind-this-4.js: Added. * tests/stress/arrowfunction-lexical-bind-this-5.js: Added. * tests/stress/arrowfunction-lexical-bind-this-6.js: Added. * tests/stress/arrowfunction-lexical-this-activation-sink-osrexit.js: Added. * tests/stress/arrowfunction-lexical-this-activation-sink.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-no-double-allocate.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-osrexit.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-put.js: Added. * tests/stress/arrowfunction-others.js: Added. * tests/stress/arrowfunction-run-10-1.js: Added. * tests/stress/arrowfunction-run-10-2.js: Added. * tests/stress/arrowfunction-run-10000-1.js: Added. * tests/stress/arrowfunction-run-10000-2.js: Added. * tests/stress/arrowfunction-sinking-no-double-allocate.js: Added. * tests/stress/arrowfunction-sinking-osrexit.js: Added. * tests/stress/arrowfunction-sinking-put.js: Added. * tests/stress/arrowfunction-tdz.js: Added. * tests/stress/arrowfunction-typeof.js: Added. LayoutTests: Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-08-17 Reviewed by Saam Barati. * js/arrowfunction-bind-expected.txt: Added. * js/arrowfunction-bind.html: Added. * js/arrowfunction-call-expected.txt: Added. * js/arrowfunction-call.html: Added. * js/arrowfunction-constructor-expected.txt: Added. * js/arrowfunction-constructor.html: Added. * js/arrowfunction-lexical-bind-this-expected.txt: Added. * js/arrowfunction-lexical-bind-this.html: Added. * js/arrowfunction-others-expected.txt: Added. * js/arrowfunction-others.html: Added. * js/arrowfunction-tdz-expected.txt: Added. * js/arrowfunction-tdz.html: Added. * js/arrowfunction-typeof-expected.txt: Added. * js/arrowfunction-typeof.html: Added. * js/regress/arrowfunction-call-expected.txt: Added. * js/regress/arrowfunction-call.html: Added. * js/regress/script-tests/arrowfunction-call.js: Added. * js/regress/script-tests/function-call.js: Added. * js/script-tests/arrowfunction-bind.js: Added. * js/script-tests/arrowfunction-call.js: Added. * js/script-tests/arrowfunction-constructor.js: Added. * js/script-tests/arrowfunction-lexical-bind-this.js: Added. * js/script-tests/arrowfunction-others.js: Added. * js/script-tests/arrowfunction-tdz.js: Added. * js/script-tests/arrowfunction-typeof.js: Added. Canonical link: https://commits.webkit.org/166207@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188545 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 22:24:20 +00:00
Tests for ES6 arrow function test tdz
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS isReferenceError is true
[ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment https://bugs.webkit.org/show_bug.cgi?id=149338 Source/JavaScriptCore: Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-12-05 Reviewed by Saam Barati. Implemented new version of the lexically bound 'this' in arrow function. In current version 'this' is stored inside of the lexical environment of the function. To store and load we use op_get_from_scope and op_put_to_scope operations. Also new implementation prevent raising TDZ error for arrow functions that are declared before super() but invoke after. * builtins/BuiltinExecutables.cpp: (JSC::createExecutableInternal): * bytecode/BytecodeList.json: * bytecode/BytecodeUseDef.h: * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): * bytecode/EvalCodeCache.h: (JSC::EvalCodeCache::getSlow): * bytecode/ExecutableInfo.h: (JSC::ExecutableInfo::ExecutableInfo): (JSC::ExecutableInfo::isDerivedConstructorContext): (JSC::ExecutableInfo::isArrowFunctionContext): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * bytecode/UnlinkedCodeBlock.h: (JSC::UnlinkedCodeBlock::isArrowFunction): (JSC::UnlinkedCodeBlock::isDerivedConstructorContext): (JSC::UnlinkedCodeBlock::isArrowFunctionContext): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::generateUnlinkedFunctionCodeBlock): (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): * bytecode/UnlinkedFunctionExecutable.h: * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): (JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded): (JSC::BytecodeGenerator::variable): (JSC::BytecodeGenerator::emitNewArrowFunctionExpression): (JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment): (JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment): (JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment): (JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment): (JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope): (JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope): (JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope): * bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::isDerivedConstructorContext): (JSC::BytecodeGenerator::usesArrowFunction): (JSC::BytecodeGenerator::needsToUpdateArrowFunctionContext): (JSC::BytecodeGenerator::usesEval): (JSC::BytecodeGenerator::usesThis): (JSC::BytecodeGenerator::newTarget): (JSC::BytecodeGenerator::makeFunction): * bytecompiler/NodesCodegen.cpp: (JSC::ThisNode::emitBytecode): (JSC::SuperNode::emitBytecode): (JSC::EvalFunctionCallNode::emitBytecode): (JSC::FunctionCallValueNode::emitBytecode): (JSC::FunctionNode::emitBytecode): * debugger/DebuggerCallFrame.cpp: (JSC::DebuggerCallFrame::evaluate): * dfg/DFGAbstractInterpreterInlines.h: * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock): * dfg/DFGCapabilities.cpp: * dfg/DFGClobberize.h: * dfg/DFGDoesGC.cpp: * dfg/DFGFixupPhase.cpp: * dfg/DFGNodeType.h: * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGPredictionPropagationPhase.cpp: * dfg/DFGPromotedHeapLocation.cpp: * dfg/DFGPromotedHeapLocation.h: * dfg/DFGSafeToExecute.h: * dfg/DFGSpeculativeJIT.cpp: * dfg/DFGSpeculativeJIT.h: * dfg/DFGSpeculativeJIT32_64.cpp: * dfg/DFGSpeculativeJIT64.cpp: * ftl/FTLCapabilities.cpp: * ftl/FTLLowerDFGToLLVM.cpp: * ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR): * interpreter/Interpreter.cpp: (JSC::eval): * jit/JIT.cpp: * jit/JIT.h: * jit/JITOpcodes.cpp: (JSC::JIT::emitNewFuncExprCommon): * jit/JITOpcodes32_64.cpp: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * parser/ASTBuilder.h: (JSC::ASTBuilder::createArrowFunctionExpr): (JSC::ASTBuilder::usesArrowFunction): * parser/Nodes.h: (JSC::ScopeNode::usesArrowFunction): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseFunctionInfo): * parser/ParserModes.h: * runtime/CodeCache.cpp: (JSC::CodeCache::getGlobalCodeBlock): (JSC::CodeCache::getProgramCodeBlock): (JSC::CodeCache::getEvalCodeBlock): (JSC::CodeCache::getModuleProgramCodeBlock): (JSC::CodeCache::getFunctionExecutableFromGlobalCode): * runtime/CodeCache.h: * runtime/CommonIdentifiers.h: * runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL): * runtime/Executable.cpp: (JSC::ScriptExecutable::ScriptExecutable): (JSC::EvalExecutable::create): (JSC::EvalExecutable::EvalExecutable): (JSC::ProgramExecutable::ProgramExecutable): (JSC::ModuleProgramExecutable::ModuleProgramExecutable): (JSC::FunctionExecutable::FunctionExecutable): * runtime/Executable.h: (JSC::ScriptExecutable::isArrowFunctionContext): (JSC::ScriptExecutable::isDerivedConstructorContext): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::createEvalCodeBlock): * runtime/JSGlobalObject.h: * runtime/JSGlobalObjectFunctions.cpp: (JSC::globalFuncEval): * tests/es6.yaml: * tests/stress/arrowfunction-activation-sink-osrexit.js: * tests/stress/arrowfunction-activation-sink.js: * tests/stress/arrowfunction-lexical-bind-newtarget.js: Added. * tests/stress/arrowfunction-lexical-bind-supercall-1.js: Added. * tests/stress/arrowfunction-lexical-bind-supercall-2.js: Added. * tests/stress/arrowfunction-lexical-bind-supercall-3.js: Added. * tests/stress/arrowfunction-lexical-bind-supercall-4.js: Added. * tests/stress/arrowfunction-lexical-bind-this-1.js: * tests/stress/arrowfunction-lexical-bind-this-7.js: Added. * tests/stress/arrowfunction-tdz-1.js: Added. * tests/stress/arrowfunction-tdz-2.js: Added. * tests/stress/arrowfunction-tdz-3.js: Added. * tests/stress/arrowfunction-tdz-4.js: Added. * tests/stress/arrowfunction-tdz.js: Removed. LayoutTests: Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-12-08 Reviewed by Saam Barati. * js/arrowfunction-supercall-expected.txt: Added. * js/arrowfunction-supercall.html: Added. * js/arrowfunction-tdz-expected.txt: Added new expectation. * js/script-tests/arrowfunction-supercall.js: Added. * js/script-tests/arrowfunction-tdz.js: Added new cases. Canonical link: https://commits.webkit.org/170152@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@193766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-12-08 20:24:04 +00:00
PASS isReferenceError is true
PASS d.id is 'a'
PASS e.id is 'a'
PASS f.id is 'a'
PASS isReferenceError is true
PASS g.id is 'a'
PASS h.id is 'a'
PASS i.id is 'a'
[ES6] Implement ES6 arrow function syntax. Arrow function specific features. Lexical bind of this https://bugs.webkit.org/show_bug.cgi?id=144956 Source/JavaScriptCore: Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-08-17 Reviewed by Saam Barati. Added support of ES6 arrow function specific feature, lexical bind of this and no constructor. http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax In patch were implemented the following cases: this - variable |this| is point to the |this| of the function where arrow function is declared. Lexical bind of |this| constructor - the using of the command |new| for arrow function leads to runtime error call(), apply(), bind() - methods can only pass in arguments, but has no effect on |this| * CMakeLists.txt: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: * JavaScriptCore.xcodeproj/project.pbxproj: * bytecode/BytecodeList.json: * bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset): * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): * bytecode/ExecutableInfo.h: (JSC::ExecutableInfo::ExecutableInfo): (JSC::ExecutableInfo::isArrowFunction): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * bytecode/UnlinkedCodeBlock.h: (JSC::UnlinkedCodeBlock::isArrowFunction): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::generateFunctionCodeBlock): (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): (JSC::UnlinkedFunctionExecutable::codeBlockFor): * bytecode/UnlinkedFunctionExecutable.h: * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): (JSC::BytecodeGenerator::emitNewFunctionCommon): (JSC::BytecodeGenerator::emitNewFunctionExpression): (JSC::BytecodeGenerator::emitNewArrowFunctionExpression): (JSC::BytecodeGenerator::emitLoadArrowFunctionThis): * bytecompiler/BytecodeGenerator.h: * bytecompiler/NodesCodegen.cpp: (JSC::ArrowFuncExprNode::emitBytecode): * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock): * dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel): * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC): * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): * dfg/DFGNode.h: (JSC::DFG::Node::convertToPhantomNewFunction): (JSC::DFG::Node::hasCellOperand): (JSC::DFG::Node::isFunctionAllocation): * dfg/DFGNodeType.h: * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGPromotedHeapLocation.cpp: (WTF::printInternal): * dfg/DFGPromotedHeapLocation.h: * dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileLoadArrowFunctionThis): (JSC::DFG::SpeculativeJIT::compileNewFunctionCommon): (JSC::DFG::SpeculativeJIT::compileNewFunction): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGStoreBarrierInsertionPhase.cpp: * dfg/DFGStructureRegistrationPhase.cpp: (JSC::DFG::StructureRegistrationPhase::run): * ftl/FTLAbstractHeapRepository.cpp: * ftl/FTLAbstractHeapRepository.h: * ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile): * ftl/FTLIntrinsicRepository.h: * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::DFG::LowerDFGToLLVM::compileNode): (JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction): (JSC::FTL::DFG::LowerDFGToLLVM::compileLoadArrowFunctionThis): * ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR): * interpreter/Interpreter.cpp: * interpreter/Interpreter.h: * jit/CCallHelpers.h: (JSC::CCallHelpers::setupArgumentsWithExecState): Added 3 arguments version for windows build. * jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): * jit/JIT.h: * jit/JITInlines.h: (JSC::JIT::callOperation): * jit/JITOpcodes.cpp: (JSC::JIT::emit_op_load_arrowfunction_this): (JSC::JIT::emit_op_new_func_exp): (JSC::JIT::emitNewFuncExprCommon): (JSC::JIT::emit_op_new_arrow_func_exp): * jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_load_arrowfunction_this): * jit/JITOperations.cpp: * jit/JITOperations.h: * llint/LLIntOffsetsExtractor.cpp: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::setUpCall): * llint/LLIntSlowPaths.h: * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * parser/ASTBuilder.h: (JSC::ASTBuilder::createFunctionMetadata): (JSC::ASTBuilder::createArrowFunctionExpr): * parser/NodeConstructors.h: (JSC::BaseFuncExprNode::BaseFuncExprNode): (JSC::FuncExprNode::FuncExprNode): (JSC::ArrowFuncExprNode::ArrowFuncExprNode): * parser/Nodes.cpp: (JSC::FunctionMetadataNode::FunctionMetadataNode): * parser/Nodes.h: (JSC::ExpressionNode::isArrowFuncExprNode): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseFunctionBody): (JSC::Parser<LexerType>::parseFunctionInfo): * parser/SyntaxChecker.h: (JSC::SyntaxChecker::createFunctionMetadata): * runtime/Executable.cpp: (JSC::ScriptExecutable::newCodeBlockFor): * runtime/Executable.h: * runtime/JSArrowFunction.cpp: Added. (JSC::JSArrowFunction::destroy): (JSC::JSArrowFunction::create): (JSC::JSArrowFunction::JSArrowFunction): (JSC::JSArrowFunction::createWithInvalidatedReallocationWatchpoint): (JSC::JSArrowFunction::visitChildren): (JSC::JSArrowFunction::getConstructData): * runtime/JSArrowFunction.h: Added. (JSC::JSArrowFunction::allocationSize): (JSC::JSArrowFunction::createImpl): (JSC::JSArrowFunction::boundThis): (JSC::JSArrowFunction::createStructure): (JSC::JSArrowFunction::offsetOfThisValue): * runtime/JSFunction.h: * runtime/JSFunctionInlines.h: (JSC::JSFunction::JSFunction): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::arrowFunctionStructure): * tests/stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js: Added. * tests/stress/arrowfunction-activation-sink-osrexit-default-value.js: Added. * tests/stress/arrowfunction-activation-sink-osrexit.js: Added. * tests/stress/arrowfunction-activation-sink.js: Added. * tests/stress/arrowfunction-bound.js: Added. * tests/stress/arrowfunction-call.js: Added. * tests/stress/arrowfunction-constructor.js: Added. * tests/stress/arrowfunction-lexical-bind-this-1.js: Added. * tests/stress/arrowfunction-lexical-bind-this-2.js: Added. * tests/stress/arrowfunction-lexical-bind-this-3.js: Added. * tests/stress/arrowfunction-lexical-bind-this-4.js: Added. * tests/stress/arrowfunction-lexical-bind-this-5.js: Added. * tests/stress/arrowfunction-lexical-bind-this-6.js: Added. * tests/stress/arrowfunction-lexical-this-activation-sink-osrexit.js: Added. * tests/stress/arrowfunction-lexical-this-activation-sink.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-no-double-allocate.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-osrexit.js: Added. * tests/stress/arrowfunction-lexical-this-sinking-put.js: Added. * tests/stress/arrowfunction-others.js: Added. * tests/stress/arrowfunction-run-10-1.js: Added. * tests/stress/arrowfunction-run-10-2.js: Added. * tests/stress/arrowfunction-run-10000-1.js: Added. * tests/stress/arrowfunction-run-10000-2.js: Added. * tests/stress/arrowfunction-sinking-no-double-allocate.js: Added. * tests/stress/arrowfunction-sinking-osrexit.js: Added. * tests/stress/arrowfunction-sinking-put.js: Added. * tests/stress/arrowfunction-tdz.js: Added. * tests/stress/arrowfunction-typeof.js: Added. LayoutTests: Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-08-17 Reviewed by Saam Barati. * js/arrowfunction-bind-expected.txt: Added. * js/arrowfunction-bind.html: Added. * js/arrowfunction-call-expected.txt: Added. * js/arrowfunction-call.html: Added. * js/arrowfunction-constructor-expected.txt: Added. * js/arrowfunction-constructor.html: Added. * js/arrowfunction-lexical-bind-this-expected.txt: Added. * js/arrowfunction-lexical-bind-this.html: Added. * js/arrowfunction-others-expected.txt: Added. * js/arrowfunction-others.html: Added. * js/arrowfunction-tdz-expected.txt: Added. * js/arrowfunction-tdz.html: Added. * js/arrowfunction-typeof-expected.txt: Added. * js/arrowfunction-typeof.html: Added. * js/regress/arrowfunction-call-expected.txt: Added. * js/regress/arrowfunction-call.html: Added. * js/regress/script-tests/arrowfunction-call.js: Added. * js/regress/script-tests/function-call.js: Added. * js/script-tests/arrowfunction-bind.js: Added. * js/script-tests/arrowfunction-call.js: Added. * js/script-tests/arrowfunction-constructor.js: Added. * js/script-tests/arrowfunction-lexical-bind-this.js: Added. * js/script-tests/arrowfunction-others.js: Added. * js/script-tests/arrowfunction-tdz.js: Added. * js/script-tests/arrowfunction-typeof.js: Added. Canonical link: https://commits.webkit.org/166207@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188545 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 22:24:20 +00:00
PASS successfullyParsed is true
TEST COMPLETE