Commit 4af20283 authored by lrn@chromium.org's avatar lrn@chromium.org

Disable "arguments" implementation. It was too optimistic in its assumptions.

Review URL: http://codereview.chromium.org/393010


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent df4f5234
......@@ -599,6 +599,11 @@ CodeGenSelector::CodeGenTag CodeGenSelector::Select(FunctionLiteral* fun) {
}
}
if (scope->arguments() != NULL) {
if (FLAG_trace_bailout) PrintF("function uses 'arguments'\n");
return NORMAL;
}
has_supported_syntax_ = true;
VisitDeclarations(scope->declarations());
if (!has_supported_syntax_) return NORMAL;
......@@ -797,13 +802,7 @@ void CodeGenSelector::VisitVariableProxy(VariableProxy* expr) {
BAILOUT("Lookup slot");
}
} else {
Property* property = rewrite->AsProperty();
// In the presence of an arguments object, parameter variables
// are rewritten into property accesses on that object.
ASSERT_NOT_NULL(property);
ASSERT_NE(Expression::kUninitialized, context_);
Visit(property);
property->set_context(context_);
BAILOUT("access to arguments object");
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment