http://codereview.chromium.org/347001/diff/1/3 File src/compiler.cc (right):
http://codereview.chromium.org/347001/diff/1/3#newcode671 Line 671: // global variables and and properties. "We support plain non-compound assignments to properties, parameters and non-context (stack-allocated) locals, and global variables." Otherwise it sounds like they might be only global properties. http://codereview.chromium.org/347001/diff/1/3#newcode685 Line 685: Visit(expr->target()); Hmmm. Here it's probably OK to visit the property as if it were an rvalue, but I think we should avoid it. Imagine if the selector had to do something different for lvalue and rvalue properties.... Better: if (var == NULL) { Property* prop = expr->target()->AsProperty(); if (prop == NULL) BAILOUT(...); Visit(prop->obj()); Visit(prop->key()); } else ... http://codereview.chromium.org/347001/diff/1/3#newcode688 Line 688: ASSERT(var->slot() != NULL); It occurs to me that we could hit the var->slot() == NULL case. (Due to a left-hand side that is not a property but is a proxy that rewrites to a property.) We should fix that by adding a bailout for var->slot() == NULL. http://codereview.chromium.org/347001/diff/1/2 File src/ia32/fast-codegen-ia32.cc (right): http://codereview.chromium.org/347001/diff/1/2#newcode470 Line 470: __ add(Operand(esp), Immediate(kPointerSize)); Indentation. http://codereview.chromium.org/347001/diff/1/4 File src/x64/fast-codegen-x64.cc (right): http://codereview.chromium.org/347001/diff/1/4#newcode482 Line 482: __ addq(rsp, Immediate(kPointerSize)); Indentation. http://codereview.chromium.org/347001 --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
