LGTM.
http://codereview.chromium.org/40295/diff/1/3 File src/ast.h (right): http://codereview.chromium.org/40295/diff/1/3#newcode639 Line 639: explicit MaterializedLiteral(int literal_index, bool is_simple) Doesn't need to be explicit anymore, but I guess it doesn't hurt. http://codereview.chromium.org/40295/diff/1/3#newcode667 Line 667: CONSTANT, // Property with constant value (compile time). Align comments? http://codereview.chromium.org/40295/diff/1/10 File src/codegen-ia32.cc (right): http://codereview.chromium.org/40295/diff/1/10#newcode3454 Line 3454: case ObjectLiteral::Property::COMPUTED: { Maybe mention in a comment that there's a 'fall through' here. http://codereview.chromium.org/40295/diff/1/10#newcode3512 Line 3512: // by calling Runtime_CreateObjectLiteral. Runtime_CreateArrayLiteralBoilerplate? http://codereview.chromium.org/40295/diff/1/10#newcode3586 Line 3586: frame_->CallRuntime(Runtime::kCloneObjectLiteralBoilerplate, 1); Maybe the name should be generalized a bit here to indicate that is is also used to clone array literals? http://codereview.chromium.org/40295/diff/1/9 File src/parser.cc (right): http://codereview.chromium.org/40295/diff/1/9#newcode3101 Line 3101: if (object_literal != NULL && object_literal->is_simple()) { Two spaces after NULL. http://codereview.chromium.org/40295/diff/1/9#newcode3106 Line 3106: if (array_literal != NULL && array_literal->is_simple()) { Can an expression convert to an array literal and an object literal? The code seems to indicate that, and if it's not the case, I would probably make that clear by wrapping the array literal case in an else clause or something. Remove extra space after NULL here too. http://codereview.chromium.org/40295/diff/1/9#newcode3110 Line 3110: return result; I guess you're sure that it's either an object literal or an array literal, right? Maybe that could be more clear from the code. http://codereview.chromium.org/40295/diff/1/7 File src/parser.h (right): http://codereview.chromium.org/40295/diff/1/7#newcode171 Line 171: class CompileTimeValue { Inherit from AllStatic? http://codereview.chromium.org/40295/diff/1/4 File src/runtime.cc (right): http://codereview.chromium.org/40295/diff/1/4#newcode276 Line 276: Handle<FixedArray> literals = args.at<FixedArray>(0); Is there a reason why you can't use the CONVERT_ARG_CHECKED macros here (and maybe use CONVERT_CHECKED for the index)? I guess that it's somewhat closer to the CreateObjectLiteralBoilerplate this way... http://codereview.chromium.org/40295 --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---