Index: src/runtime/runtime-scopes.cc |
diff --git a/src/runtime/runtime-scopes.cc b/src/runtime/runtime-scopes.cc |
index 9d35ffaed28305a53905ba8b13499619e0038a53..c48075a1faf87fba3c441caf6b192f20fa6e672b 100644 |
--- a/src/runtime/runtime-scopes.cc |
+++ b/src/runtime/runtime-scopes.cc |
@@ -525,7 +525,8 @@ RUNTIME_FUNCTION(Runtime_NewStrictArguments) { |
static Handle<JSArray> NewRestParam(Isolate* isolate, |
Object** parameters, |
int num_params, |
- int rest_index) { |
+ int rest_index, |
+ LanguageMode language_mode) { |
parameters -= rest_index; |
int num_elements = std::max(0, num_params - rest_index); |
Handle<FixedArray> elements = |
@@ -534,25 +535,29 @@ static Handle<JSArray> NewRestParam(Isolate* isolate, |
elements->set(i, *--parameters); |
} |
return isolate->factory()->NewJSArrayWithElements(elements, FAST_ELEMENTS, |
- num_elements); |
+ num_elements, |
+ strength(language_mode)); |
} |
RUNTIME_FUNCTION(Runtime_NewRestParam) { |
HandleScope scope(isolate); |
- DCHECK(args.length() == 3); |
+ DCHECK(args.length() == 4); |
Object** parameters = reinterpret_cast<Object**>(args[0]); |
CONVERT_SMI_ARG_CHECKED(num_params, 1); |
CONVERT_SMI_ARG_CHECKED(rest_index, 2); |
+ CONVERT_SMI_ARG_CHECKED(language_mode, 3); |
- return *NewRestParam(isolate, parameters, num_params, rest_index); |
+ return *NewRestParam(isolate, parameters, num_params, rest_index, |
+ static_cast<LanguageMode>(language_mode)); |
} |
RUNTIME_FUNCTION(Runtime_NewRestParamSlow) { |
HandleScope scope(isolate); |
- DCHECK(args.length() == 1); |
+ DCHECK(args.length() == 2); |
CONVERT_SMI_ARG_CHECKED(rest_index, 0); |
+ CONVERT_SMI_ARG_CHECKED(language_mode, 1); |
JavaScriptFrameIterator it(isolate); |
@@ -563,7 +568,8 @@ RUNTIME_FUNCTION(Runtime_NewRestParamSlow) { |
int argument_count = frame->GetArgumentsLength(); |
Object** parameters = reinterpret_cast<Object**>(frame->GetParameterSlot(-1)); |
- return *NewRestParam(isolate, parameters, argument_count, rest_index); |
+ return *NewRestParam(isolate, parameters, argument_count, rest_index, |
+ static_cast<LanguageMode>(language_mode)); |
} |