// overwritten by JS code.
native_context()->set_array_function(*array_function);
- // Cache the array maps
- MaybeObject* cache_result = CacheInitialJSArrayMaps(*native_context(),
- *initial_map);
- if (cache_result->IsFailure()) return false;
-
if (FLAG_optimize_constructed_arrays) {
+ // Cache the array maps, needed by ArrayConstructorStub
+ MaybeObject* cache_result = CacheInitialJSArrayMaps(*native_context(),
+ *initial_map);
+ if (cache_result->IsFailure()) return false;
+
ArrayConstructorStub array_constructor_stub(isolate);
- array_function->shared()->set_construct_stub(
- *array_constructor_stub.GetCode(isolate));
+ Handle<Code> code = array_constructor_stub.GetCode(isolate);
+ array_function->shared()->set_construct_stub(*code);
} else {
array_function->shared()->set_construct_stub(
isolate->builtins()->builtin(Builtins::kCommonArrayConstructCode));
#endif
promotion_queue_(this),
configured_(false),
- chunks_queued_for_free_(NULL) {
+ chunks_queued_for_free_(NULL),
+ relocation_mutex_(NULL) {
// Allow build-time customization of the max semispace size. Building
// V8 with snapshots and a non-default max semispace size is much
// easier if you can define it as part of the build environment.
HGlobalObject(context));
HInstruction* native_context = AddInstruction(new(zone())
HLoadNamedField(global_object, true, GlobalObject::kNativeContextOffset));
- size_t offset = Context::kHeaderSize +
+ int offset = Context::kHeaderSize +
kPointerSize * Context::JS_ARRAY_MAPS_INDEX;
HInstruction* map_array = AddInstruction(new(zone())
HLoadNamedField(native_context, true, offset));