diff options
Diffstat (limited to 'deps/v8/src/runtime/runtime-classes.cc')
-rw-r--r-- | deps/v8/src/runtime/runtime-classes.cc | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/deps/v8/src/runtime/runtime-classes.cc b/deps/v8/src/runtime/runtime-classes.cc index 246079232b..9398586de5 100644 --- a/deps/v8/src/runtime/runtime-classes.cc +++ b/deps/v8/src/runtime/runtime-classes.cc @@ -459,48 +459,5 @@ RUNTIME_FUNCTION(Runtime_GetSuperConstructor) { return prototype; } -RUNTIME_FUNCTION(Runtime_NewWithSpread) { - HandleScope scope(isolate); - DCHECK_LE(3, args.length()); - CONVERT_ARG_HANDLE_CHECKED(JSReceiver, constructor, 0); - CONVERT_ARG_HANDLE_CHECKED(Object, new_target, 1); - - int constructor_argc = args.length() - 2; - CONVERT_ARG_HANDLE_CHECKED(Object, spread, args.length() - 1); - - // Iterate over the spread if we need to. - if (spread->IterationHasObservableEffects()) { - Handle<JSFunction> spread_iterable_function = isolate->spread_iterable(); - ASSIGN_RETURN_FAILURE_ON_EXCEPTION( - isolate, spread, - Execution::Call(isolate, spread_iterable_function, - isolate->factory()->undefined_value(), 1, &spread)); - } - - uint32_t spread_length; - Handle<JSArray> spread_array = Handle<JSArray>::cast(spread); - CHECK(spread_array->length()->ToArrayIndex(&spread_length)); - int result_length = constructor_argc - 1 + spread_length; - ScopedVector<Handle<Object>> construct_args(result_length); - - // Append each of the individual args to the result. - for (int i = 0; i < constructor_argc - 1; i++) { - construct_args[i] = args.at<Object>(2 + i); - } - - // Append element of the spread to the result. - ElementsAccessor* accessor = spread_array->GetElementsAccessor(); - for (uint32_t i = 0; i < spread_length; i++) { - DCHECK(accessor->HasElement(spread_array, i)); - Handle<Object> element = accessor->Get(spread_array, i); - construct_args[constructor_argc - 1 + i] = element; - } - - // Call the constructor. - RETURN_RESULT_OR_FAILURE( - isolate, Execution::New(isolate, constructor, new_target, result_length, - construct_args.start())); -} - } // namespace internal } // namespace v8 |