| Index: src/heap.cc
|
| diff --git a/src/heap.cc b/src/heap.cc
|
| index 0d2cc42402f4b3457b1d28340984069d452dbd7d..a571fa37c968b932f7844ed3897fb0834a32779e 100644
|
| --- a/src/heap.cc
|
| +++ b/src/heap.cc
|
| @@ -2497,6 +2497,14 @@ bool Heap::CreateInitialMaps() {
|
| }
|
| set_message_object_map(Map::cast(obj));
|
|
|
| + Map* external_map;
|
| + { MaybeObject* maybe_obj =
|
| + AllocateMap(JS_OBJECT_TYPE, JSObject::kHeaderSize + kPointerSize);
|
| + if (!maybe_obj->To(&external_map)) return false;
|
| + }
|
| + external_map->set_is_extensible(false);
|
| + set_external_map(external_map);
|
| +
|
| ASSERT(!InNewSpace(empty_fixed_array()));
|
| return true;
|
| }
|
| @@ -5099,6 +5107,20 @@ MaybeObject* Heap::AllocateScopeInfo(int length) {
|
| }
|
|
|
|
|
| +MaybeObject* Heap::AllocateExternal(void* value) {
|
| + Foreign* foreign;
|
| + { MaybeObject* maybe_result = AllocateForeign(static_cast<Address>(value));
|
| + if (!maybe_result->To(&foreign)) return maybe_result;
|
| + }
|
| + JSObject* external;
|
| + { MaybeObject* maybe_result = AllocateJSObjectFromMap(external_map());
|
| + if (!maybe_result->To(&external)) return maybe_result;
|
| + }
|
| + external->SetInternalField(0, foreign);
|
| + return external;
|
| +}
|
| +
|
| +
|
| MaybeObject* Heap::AllocateStruct(InstanceType type) {
|
| Map* map;
|
| switch (type) {
|
|
|