| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index 4f7cf409404e9e909aaa0bde8d36fd3b139acccf..7abd45cac0294975f6b2d9e9a607a5beae180707 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -350,7 +350,14 @@ static Handle<JSFunction> InstallFunction(Handle<JSObject> target,
|
| prototype,
|
| call_code,
|
| is_ecma_native);
|
| - SetLocalPropertyNoThrow(target, symbol, function, DONT_ENUM);
|
| + PropertyAttributes attributes;
|
| + if (target->IsJSBuiltinsObject()) {
|
| + attributes =
|
| + static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY);
|
| + } else {
|
| + attributes = DONT_ENUM;
|
| + }
|
| + SetLocalPropertyNoThrow(target, symbol, function, attributes);
|
| if (is_ecma_native) {
|
| function->shared()->set_instance_class_name(*symbol);
|
| }
|
| @@ -1160,7 +1167,7 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
|
|
|
|
| {
|
| - // Setup the call-as-function delegate.
|
| + // Set up the call-as-function delegate.
|
| Handle<Code> code =
|
| Handle<Code>(isolate->builtins()->builtin(
|
| Builtins::kHandleApiCallAsFunction));
|
| @@ -1172,7 +1179,7 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
| }
|
|
|
| {
|
| - // Setup the call-as-constructor delegate.
|
| + // Set up the call-as-constructor delegate.
|
| Handle<Code> code =
|
| Handle<Code>(isolate->builtins()->builtin(
|
| Builtins::kHandleApiCallAsConstructor));
|
| @@ -1192,15 +1199,15 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
|
|
|
|
| void Genesis::InitializeExperimentalGlobal() {
|
| - Isolate* isolate = this->isolate();
|
| Handle<JSObject> global = Handle<JSObject>(global_context()->global());
|
|
|
| // TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no
|
| // longer need to live behind a flag, so WeakMap gets added to the snapshot.
|
| if (FLAG_harmony_weakmaps) { // -- W e a k M a p
|
| + Handle<JSObject> prototype =
|
| + factory()->NewJSObject(isolate()->object_function(), TENURED);
|
| InstallFunction(global, "WeakMap", JS_WEAK_MAP_TYPE, JSWeakMap::kSize,
|
| - isolate->initial_object_prototype(),
|
| - Builtins::kIllegal, true);
|
| + prototype, Builtins::kIllegal, true);
|
| }
|
| }
|
|
|
| @@ -1677,7 +1684,6 @@ bool Genesis::InstallNatives() {
|
| global_context()->set_regexp_result_map(*initial_map);
|
| }
|
|
|
| -
|
| #ifdef DEBUG
|
| builtins->Verify();
|
| #endif
|
|
|