Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 85812ca28cc8679cd9a9504967dc4405554f1dfa..9adb3c615f851c14923e3c44d9ad5d445fd2e0a8 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -1600,8 +1600,14 @@ Handle<JSFunction> Genesis::InstallInternalArray( |
factory()->NewJSObject(isolate()->object_function(), TENURED); |
SetPrototype(array_function, prototype); |
- array_function->shared()->set_construct_stub( |
- isolate()->builtins()->builtin(Builtins::kCommonArrayConstructCode)); |
+ if (FLAG_optimize_constructed_arrays) { |
+ InternalArrayConstructorStub internal_array_constructor_stub(isolate()); |
+ Handle<Code> code = internal_array_constructor_stub.GetCode(isolate()); |
+ array_function->shared()->set_construct_stub(*code); |
+ } else { |
+ array_function->shared()->set_construct_stub( |
+ isolate()->builtins()->builtin(Builtins::kCommonArrayConstructCode)); |
+ } |
array_function->shared()->DontAdaptArguments(); |