Bug 1034280 - Don't report warnings for recover instructions when snapshotting frames for PJS bailout warnings. (r=nbp)

This commit is contained in:
Shu-yu Guo 2014-07-09 12:23:07 -07:00
Родитель 0922ccbcca
Коммит 6fcca6b438
2 изменённых файлов: 8 добавлений и 6 удалений

Просмотреть файл

@ -419,7 +419,8 @@ class SnapshotIterator
template <class Op>
void readFunctionFrameArgs(Op &op, ArgumentsObject **argsObj, Value *thisv,
unsigned start, unsigned end, JSScript *script,
const Value &unreadablePlaceholder = UndefinedValue())
const Value &unreadablePlaceholder = UndefinedValue(),
bool silentFailure = false)
{
// Assumes that the common frame arguments have already been read.
if (script->argumentsHasVarBinding()) {
@ -447,7 +448,7 @@ class SnapshotIterator
// We are not always able to read values from the snapshots, some values
// such as non-gc things may still be live in registers and cause an
// error while reading the machine state.
Value v = maybeRead(unreadablePlaceholder);
Value v = maybeRead(unreadablePlaceholder, silentFailure);
op(v);
}
}
@ -535,7 +536,8 @@ class InlineFrameIterator
JSObject **scopeChain, Value *rval,
ArgumentsObject **argsObj, Value *thisv,
ReadFrameArgsBehavior behavior,
const Value &unreadablePlaceholder = UndefinedValue()) const
const Value &unreadablePlaceholder = UndefinedValue(),
bool silentFailure = false) const
{
SnapshotIterator s(si_);
@ -556,7 +558,7 @@ class InlineFrameIterator
// done.
if (behavior != ReadFrame_Overflown) {
s.readFunctionFrameArgs(argOp, argsObj, thisv, 0, nformal, script(),
unreadablePlaceholder);
unreadablePlaceholder, silentFailure);
}
if (behavior != ReadFrame_Formals) {
@ -605,7 +607,7 @@ class InlineFrameIterator
// recovering slots.
//
// FIXME bug 1029963.
localOp(s.maybeRead(unreadablePlaceholder));
localOp(s.maybeRead(unreadablePlaceholder, silentFailure));
}
}

Просмотреть файл

@ -40,7 +40,7 @@ RematerializedFrame::RematerializedFrame(ThreadSafeContext *cx, uint8_t *top,
CopyValueToRematerializedFrame op(slots_);
iter.readFrameArgsAndLocals(cx, op, op, &scopeChain_, &returnValue_,
&argsObj_, &thisValue_, ReadFrame_Actuals,
MagicValue(JS_OPTIMIZED_OUT));
MagicValue(JS_OPTIMIZED_OUT), /* silentFailure = */ true);
}
/* static */ RematerializedFrame *