Bug 874825 - Correctly set HAS_ARGS_OBJ flag when bailing out to baseline. r=djvj

This commit is contained in:
Jan de Mooij 2013-05-24 14:03:28 +02:00
parent 99703ffbe7
commit 3c8b0084d5

View File

@ -565,13 +565,15 @@ InitFromBailout(JSContext *cx, HandleScript caller, jsbytecode *callerPC,
} }
IonSpew(IonSpew_BaselineBailouts, " ScopeChain=%p", scopeChain); IonSpew(IonSpew_BaselineBailouts, " ScopeChain=%p", scopeChain);
blFrame->setScopeChain(scopeChain); blFrame->setScopeChain(scopeChain);
if (argsObj)
blFrame->initArgsObjUnchecked(*argsObj);
// Do not need to initialize scratchValue or returnValue fields in BaselineFrame. // Do not need to initialize scratchValue or returnValue fields in BaselineFrame.
// No flags are set.
blFrame->setFlags(flags); blFrame->setFlags(flags);
// initArgsObjUnchecked modifies the frame's flags, so call it after setFlags.
if (argsObj)
blFrame->initArgsObjUnchecked(*argsObj);
// Ion doesn't compile code with try/catch, so the block object will always be // Ion doesn't compile code with try/catch, so the block object will always be
// null. // null.
blFrame->setBlockChainNull(); blFrame->setBlockChainNull();