Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 6c36cad03ee87fa571001d627d782acdb2abef24..08b316438e3eb7f3ba35de91a31edeeeebb58af2 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -1055,6 +1055,21 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
#endif |
} |
+ { // --- aliased_arguments_boilerplate_ |
+ Handle<Map> old_map(global_context()->arguments_boilerplate()->map()); |
+ Handle<Map> new_map = factory->CopyMapDropTransitions(old_map); |
+ new_map->set_pre_allocated_property_fields(2); |
+ Handle<JSObject> result = factory->NewJSObjectFromMap(new_map); |
+ new_map->set_elements_kind(JSObject::NON_STRICT_ARGUMENTS_ELEMENTS); |
+ // Set up a well-formed parameter map to make assertions happy. |
+ Handle<FixedArray> elements = factory->NewFixedArray(2); |
+ elements->set_map(heap->non_strict_arguments_elements_map()); |
+ elements->set(0, *factory->NewFixedArray(0)); |
+ elements->set(1, *factory->NewFixedArray(0)); |
+ result->set_elements(*elements); |
+ global_context()->set_aliased_arguments_boilerplate(*result); |
+ } |
+ |
{ // --- strict mode arguments boilerplate |
const PropertyAttributes attributes = |
static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY); |