Changeset 191411 in webkit
- Timestamp:
- Oct 21, 2015 4:10:45 PM (9 years ago)
- Location:
- tags/Safari-602.1.8
- Files:
-
- 3 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
tags/Safari-602.1.8/LayoutTests/ChangeLog
r191375 r191411 1 2015-10-21 Babak Shafiei <bshafiei@apple.com> 2 3 Roll out r191360. 4 1 5 2015-10-20 Ryan Haddad <ryanhaddad@apple.com> 2 6 -
tags/Safari-602.1.8/LayoutTests/js/caller-property-expected.txt
r191360 r191411 11 11 PASS strictCaller(nonStrictCallee) threw exception TypeError: Function.caller used to retrieve strict caller. 12 12 PASS strictCaller(strictCallee) threw exception TypeError: Type error. 13 PASS strictTailCaller(nonStrictCallee) is null 13 FAIL strictTailCaller(nonStrictCallee) should be null. Threw exception TypeError: Function.caller used to retrieve strict caller 14 14 PASS strictTailCaller(strictCallee) threw exception TypeError: Type error. 15 15 PASS nonStrictCaller(boundNonStrictCallee) is nonStrictCaller … … 17 17 PASS strictCaller(boundNonStrictCallee) threw exception TypeError: Function.caller used to retrieve strict caller. 18 18 PASS strictCaller(boundStrictCallee) threw exception TypeError: Type error. 19 PASS strictTailCaller(boundNonStrictCallee) is null 19 FAIL strictTailCaller(boundNonStrictCallee) should be null. Threw exception TypeError: Function.caller used to retrieve strict caller 20 20 PASS strictTailCaller(boundStrictCallee) threw exception TypeError: Type error. 21 21 PASS nonStrictGetter(nonStrictAccessor) is nonStrictGetter -
tags/Safari-602.1.8/Source/JavaScriptCore/ChangeLog
r191364 r191411 1 2015-10-21 Babak Shafiei <bshafiei@apple.com> 2 3 Roll out r191360. 4 1 5 2015-10-20 Mark Lam <mark.lam@apple.com> 2 6 -
tags/Safari-602.1.8/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
r191360 r191411 215 215 216 216 jit.storePtr(AssemblyHelpers::TrustedImmPtr(baselineCodeBlock), AssemblyHelpers::addressFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::CodeBlock))); 217 218 // Restore the inline call frame's callee save registers. 219 // If this inlined frame is a tail call that will return back to the original caller, we need to 220 // copy the prior contents of the tag registers already saved for the outer frame to this frame. 221 jit.emitSaveOrCopyCalleeSavesFor( 222 baselineCodeBlock, 223 static_cast<VirtualRegister>(inlineCallFrame->stackOffset), 224 trueCaller ? AssemblyHelpers::UseExistingTagRegisterContents : AssemblyHelpers::CopySavedTagRegistersFromBaseFrame, 225 GPRInfo::regT2); 226 217 jit.emitSaveCalleeSavesFor(baselineCodeBlock, static_cast<VirtualRegister>(inlineCallFrame->stackOffset)); 227 218 if (!inlineCallFrame->isVarargs()) 228 219 jit.store32(AssemblyHelpers::TrustedImm32(inlineCallFrame->arguments.size()), AssemblyHelpers::payloadFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::ArgumentCount))); -
tags/Safari-602.1.8/Source/JavaScriptCore/jit/AssemblyHelpers.h
r191360 r191411 179 179 } 180 180 181 void emitSaveCalleeSavesFor(CodeBlock* codeBlock )181 void emitSaveCalleeSavesFor(CodeBlock* codeBlock, VirtualRegister offsetVirtualRegister = static_cast<VirtualRegister>(0)) 182 182 { 183 183 ASSERT(codeBlock); … … 191 191 if (dontSaveRegisters.get(entry.reg())) 192 192 continue; 193 storePtr(entry.reg().gpr(), Address(framePointerRegister, entry.offset()));193 storePtr(entry.reg().gpr(), Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset())); 194 194 } 195 195 } 196 197 enum RestoreTagRegisterMode { UseExistingTagRegisterContents, CopySavedTagRegistersFromBaseFrame }; 198 199 void emitSaveOrCopyCalleeSavesFor(CodeBlock* codeBlock, VirtualRegister offsetVirtualRegister, RestoreTagRegisterMode tagRegisterMode, GPRReg temp) 200 { 201 ASSERT(codeBlock); 202 203 RegisterAtOffsetList* calleeSaves = codeBlock->calleeSaveRegisters(); 204 RegisterSet dontSaveRegisters = RegisterSet(RegisterSet::stackRegisters(), RegisterSet::allFPRs()); 205 unsigned registerCount = calleeSaves->size(); 206 207 for (unsigned i = 0; i < registerCount; i++) { 208 RegisterAtOffset entry = calleeSaves->at(i); 209 if (dontSaveRegisters.get(entry.reg())) 210 continue; 211 212 GPRReg registerToWrite; 213 214 #if USE(JSVALUE32_64) 215 UNUSED_PARAM(tagRegisterMode); 216 UNUSED_PARAM(temp); 217 #else 218 if (tagRegisterMode == CopySavedTagRegistersFromBaseFrame 219 && (entry.reg() == GPRInfo::tagTypeNumberRegister || entry.reg() == GPRInfo::tagMaskRegister)) { 220 registerToWrite = temp; 221 loadPtr(AssemblyHelpers::Address(GPRInfo::callFrameRegister, entry.offset()), registerToWrite); 222 } else 223 #endif 224 registerToWrite = entry.reg().gpr(); 225 226 storePtr(registerToWrite, Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset())); 227 } 228 } 229 196 230 197 void emitRestoreCalleeSavesFor(CodeBlock* codeBlock) 231 198 { -
tags/Safari-602.1.8/Source/JavaScriptCore/runtime/Options.h
r191360 r191411 132 132 \ 133 133 v(bool, useFunctionDotArguments, true, nullptr) \ 134 v(bool, useTailCalls, true, nullptr) \134 v(bool, useTailCalls, false, nullptr) \ 135 135 \ 136 136 /* dumpDisassembly implies dumpDFGDisassembly. */ \ -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/es6.yaml
r191360 r191411 880 880 cmd: runES6 :fail 881 881 - path: es6/proper_tail_calls_tail_call_optimisation_direct_recursion.js 882 cmd: runES6 : normal882 cmd: runES6 :fail 883 883 - path: es6/proper_tail_calls_tail_call_optimisation_mutual_recursion.js 884 cmd: runES6 : normal884 cmd: runES6 :fail 885 885 - path: es6/prototype_of_bound_functions_arrow_functions.js 886 886 cmd: runES6 :fail -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/dfg-tail-calls.js
r191360 r191411 1 //@ skip 1 2 (function nonInlinedTailCall() { 2 3 function callee() { if (callee.caller != nonInlinedTailCall) throw new Error(); } -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/mutual-tail-call-no-stack-overflow.js
r191360 r191411 1 //@ skip 1 2 function shouldThrow(func, errorMessage) { 2 3 var errorThrown = false; -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-in-inline-cache.js
r191360 r191411 1 //@ skip 1 2 "use strict"; 2 3 -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-no-stack-overflow.js
r191360 r191411 1 //@ skip 1 2 function shouldThrow(func, errorMessage) { 2 3 var errorThrown = false; -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-recognize.js
r191360 r191411 1 //@ skip 1 2 function callerMustBeRun() { 2 3 if (!Object.is(callerMustBeRun.caller, runTests)) -
tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-varargs-no-stack-overflow.js
r191360 r191411 1 //@ skip 1 2 function shouldThrow(func, errorMessage) { 2 3 var errorThrown = false;
Note: See TracChangeset
for help on using the changeset viewer.