Index: src/runtime/runtime-array.cc |
diff --git a/src/runtime/runtime-array.cc b/src/runtime/runtime-array.cc |
index 20cd65974c0fcaa67e38c823b246b36e073bf970..677b42ec17c4617862ea619052370baff3ae76f6 100644 |
--- a/src/runtime/runtime-array.cc |
+++ b/src/runtime/runtime-array.cc |
@@ -37,7 +37,7 @@ static void InstallCode( |
BuiltinFunctionId id = static_cast<BuiltinFunctionId>(-1)) { |
Handle<String> key = isolate->factory()->InternalizeUtf8String(name); |
Handle<JSFunction> optimized = |
- isolate->factory()->NewFunctionWithoutPrototype(key, code); |
+ isolate->factory()->NewFunctionWithoutPrototype(key, code, true); |
if (argc < 0) { |
optimized->shared()->DontAdaptArguments(); |
} else { |
@@ -46,6 +46,8 @@ static void InstallCode( |
if (id >= 0) { |
optimized->shared()->set_builtin_function_id(id); |
} |
+ optimized->shared()->set_language_mode(STRICT); |
+ optimized->shared()->set_native(true); |
JSObject::AddProperty(holder, key, optimized, NONE); |
} |
@@ -78,10 +80,20 @@ RUNTIME_FUNCTION(Runtime_SpecialArrayFunctions) { |
kArrayValues); |
InstallBuiltin(isolate, holder, "entries", Builtins::kArrayPrototypeEntries, |
0, kArrayEntries); |
- |
return *holder; |
} |
+RUNTIME_FUNCTION(Runtime_SpecialExperimentalArrayFunctions) { |
Yang
2017/02/03 10:20:25
This is no longer necessary, is it?
danno
2017/02/03 12:46:55
Done.
|
+ HandleScope scope(isolate); |
+ DCHECK_EQ(0, args.length()); |
+ Handle<JSObject> holder = |
+ isolate->factory()->NewJSObject(isolate->object_function()); |
+ if (FLAG_enable_fast_array_builtins) { |
+ InstallBuiltin(isolate, holder, "forEach", Builtins::kArrayForEach, |
+ ForEachDescriptor::kStackParameterCount); |
+ } |
+ return *holder; |
+} |
RUNTIME_FUNCTION(Runtime_FixedArrayGet) { |
SealHandleScope shs(isolate); |