mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 03:49:42 +00:00
Backed out changeset b158656d754e (bug 921035) for test bustage
This commit is contained in:
parent
ce59aa6392
commit
ecc6022e88
@ -1,12 +0,0 @@
|
||||
function $ERROR() {}
|
||||
function testMultipleArgumentsObjects() {
|
||||
var testargs = arguments;
|
||||
var f = function (which) {
|
||||
var args = [ testargs ];
|
||||
return args[which][0];
|
||||
};
|
||||
var arr = [0, 0, 0, 0, 1];
|
||||
for (var i = 0; i < arr.length; i++)
|
||||
$ERROR[i] = f(arr[i]);
|
||||
}
|
||||
testMultipleArgumentsObjects()
|
@ -211,25 +211,16 @@ IsPhiObservable(MPhi *phi, Observability observe)
|
||||
break;
|
||||
}
|
||||
|
||||
// If the Phi is of the |this| value, it must always be observable.
|
||||
uint32_t slot = phi->slot();
|
||||
CompileInfo &info = phi->block()->info();
|
||||
JSFunction *fun = info.fun();
|
||||
|
||||
// If the Phi is of the |this| value, it must always be observable.
|
||||
if (fun && slot == info.thisSlot())
|
||||
return true;
|
||||
|
||||
// If the function is heavyweight, and the Phi is of the |scopeChain|
|
||||
// value, and the function may need an arguments object, then make sure
|
||||
// to preserve the scope chain, because it may be needed to construct the
|
||||
// arguments object during bailout.
|
||||
if (fun && fun->isHeavyweight() && info.hasArguments() && slot == info.scopeChainSlot())
|
||||
if (info.fun() && slot == info.thisSlot())
|
||||
return true;
|
||||
|
||||
// If the Phi is one of the formal argument, and we are using an argument
|
||||
// object in the function. The phi might be observable after a bailout.
|
||||
// For inlined frames this is not needed, as they are captured in the inlineResumePoint.
|
||||
if (fun && info.hasArguments()) {
|
||||
if (info.fun() && info.hasArguments()) {
|
||||
uint32_t first = info.firstArgSlot();
|
||||
if (first <= slot && slot - first < info.nargs()) {
|
||||
// If arguments obj aliases formals, then the arg slots will never be used.
|
||||
|
Loading…
x
Reference in New Issue
Block a user