| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index a7754dba1a861935354ad2be18e793cb650e9f26..d2820fde853c0eaaf046a5c3ac63800f6d989c50 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -1880,6 +1880,16 @@ void Genesis::InitializeGlobal_harmony_tolength() {
|
| }
|
|
|
|
|
| +static void SimpleInstallFunction(
|
| + Handle<JSObject>& base, const char* name, Builtins::Name call, int len) {
|
| + Handle<JSFunction> fun =
|
| + InstallFunction(base, name, JS_OBJECT_TYPE, JSObject::kHeaderSize,
|
| + MaybeHandle<JSObject>(), call);
|
| + fun->shared()->set_internal_formal_parameter_count(len);
|
| + fun->shared()->set_length(len);
|
| +}
|
| +
|
| +
|
| void Genesis::InitializeGlobal_harmony_reflect() {
|
| if (!FLAG_harmony_reflect) return;
|
|
|
| @@ -1887,11 +1897,19 @@ void Genesis::InitializeGlobal_harmony_reflect() {
|
| native_context()->global_object()));
|
| Handle<String> reflect_string =
|
| factory()->NewStringFromStaticChars("Reflect");
|
| - Handle<Object> reflect =
|
| + Handle<JSObject> reflect =
|
| factory()->NewJSObject(isolate()->object_function(), TENURED);
|
| JSObject::AddProperty(global, reflect_string, reflect, DONT_ENUM);
|
| -}
|
|
|
| + SimpleInstallFunction(reflect, "deleteProperty",
|
| + Builtins::kReflectDeleteProperty, 2);
|
| + SimpleInstallFunction(reflect, "get",
|
| + Builtins::kReflectGet, 3);
|
| + SimpleInstallFunction(reflect, "has",
|
| + Builtins::kReflectHas, 2);
|
| + SimpleInstallFunction(reflect, "isExtensible",
|
| + Builtins::kReflectIsExtensible, 1);
|
| +}
|
|
|
|
|
| void Genesis::InitializeGlobal_harmony_sharedarraybuffer() {
|
|
|