| Index: src/x64/codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/codegen-x64.cc (revision 7254)
|
| +++ src/x64/codegen-x64.cc (working copy)
|
| @@ -634,7 +634,9 @@
|
| // allocated yet.
|
| frame_->Push(FACTORY->arguments_marker());
|
| } else {
|
| - ArgumentsAccessStub stub(ArgumentsAccessStub::NEW_OBJECT);
|
| + ArgumentsAccessStub stub(is_strict_mode()
|
| + ? ArgumentsAccessStub::NEW_STRICT
|
| + : ArgumentsAccessStub::NEW_NON_STRICT);
|
| frame_->PushFunction();
|
| frame_->PushReceiverSlotAddress();
|
| frame_->Push(Smi::FromInt(scope()->num_parameters()));
|
| @@ -4261,10 +4263,11 @@
|
|
|
| // Use the fast case closure allocation code that allocates in new
|
| // space for nested functions that don't need literals cloning.
|
| - if (scope()->is_function_scope() &&
|
| - function_info->num_literals() == 0 &&
|
| - !pretenure) {
|
| - FastNewClosureStub stub;
|
| + if (!pretenure &&
|
| + scope()->is_function_scope() &&
|
| + function_info->num_literals() == 0) {
|
| + FastNewClosureStub stub(
|
| + function_info->strict_mode() ? kStrictMode : kNonStrictMode);
|
| frame_->Push(function_info);
|
| Result answer = frame_->CallStub(&stub, 1);
|
| frame_->Push(&answer);
|
|
|