| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 5939eb186eeda720db76a8459292e7ed6fb5a34d..53d27999ea073768fd0f879121cddf7964974732 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -64,7 +64,8 @@ VariableProxy::VariableProxy(Zone* zone, Variable* var, int position)
|
| name_(var->raw_name()),
|
| var_(NULL), // Will be set by the call to BindTo.
|
| is_this_(var->is_this()),
|
| - is_assigned_(false),
|
| + is_trivial_(false),
|
| + is_lvalue_(false),
|
| interface_(var->interface()) {
|
| BindTo(var);
|
| }
|
| @@ -79,7 +80,8 @@ VariableProxy::VariableProxy(Zone* zone,
|
| name_(name),
|
| var_(NULL),
|
| is_this_(is_this),
|
| - is_assigned_(false),
|
| + is_trivial_(false),
|
| + is_lvalue_(false),
|
| interface_(interface) {
|
| }
|
|
|
| @@ -95,7 +97,7 @@ void VariableProxy::BindTo(Variable* var) {
|
| // eval() etc. Const-ness and variable declarations are a complete mess
|
| // in JS. Sigh...
|
| var_ = var;
|
| - var->set_is_used();
|
| + var->set_is_used(true);
|
| }
|
|
|
|
|
| @@ -1115,9 +1117,11 @@ void AstConstructionVisitor::VisitCallRuntime(CallRuntime* node) {
|
| // optimize them.
|
| add_flag(kDontInline);
|
| } else if (node->function()->intrinsic_type == Runtime::INLINE &&
|
| - node->raw_name()->IsOneByteEqualTo("_Arguments")) {
|
| - // Don't inline the %_Arguments because it's implementation will not work.
|
| - // There is no stack frame to get them from.
|
| + (node->raw_name()->IsOneByteEqualTo("_ArgumentsLength") ||
|
| + node->raw_name()->IsOneByteEqualTo("_Arguments"))) {
|
| + // Don't inline the %_ArgumentsLength or %_Arguments because their
|
| + // implementation will not work. There is no stack frame to get them
|
| + // from.
|
| add_flag(kDontInline);
|
| }
|
| }
|
|
|