Index: src/runtime/runtime-scopes.cc |
diff --git a/src/runtime/runtime-scopes.cc b/src/runtime/runtime-scopes.cc |
index 1cf04a8dba04d7b7df4a74c379fdd09a0c6516b4..a8f3a749189196663b9f086725dc700df185b13e 100644 |
--- a/src/runtime/runtime-scopes.cc |
+++ b/src/runtime/runtime-scopes.cc |
@@ -1137,88 +1137,5 @@ RUNTIME_FUNCTION(Runtime_StoreLookupSlot_Strict) { |
return *value; |
} |
- |
-RUNTIME_FUNCTION(Runtime_ArgumentsLength) { |
- HandleScope scope(isolate); |
- DCHECK(args.length() == 0); |
- int argument_count = 0; |
- GetCallerArguments(isolate, &argument_count); |
- return Smi::FromInt(argument_count); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_Arguments) { |
- HandleScope scope(isolate); |
- DCHECK(args.length() == 1); |
- CONVERT_ARG_HANDLE_CHECKED(Object, raw_key, 0); |
- |
- // Determine the actual arguments passed to the function. |
- int argument_count_signed = 0; |
- base::SmartArrayPointer<Handle<Object>> arguments = |
- GetCallerArguments(isolate, &argument_count_signed); |
- const uint32_t argument_count = argument_count_signed; |
- |
- // Try to convert the key to an index. If successful and within |
- // index return the the argument from the frame. |
- uint32_t index = 0; |
- if (raw_key->ToArrayIndex(&index) && index < argument_count) { |
- return *arguments[index]; |
- } |
- |
- if (raw_key->IsSymbol()) { |
- Handle<Symbol> symbol = Handle<Symbol>::cast(raw_key); |
- if (Name::Equals(symbol, isolate->factory()->iterator_symbol())) { |
- return isolate->native_context()->array_values_iterator(); |
- } |
- // Lookup in the initial Object.prototype object. |
- Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Object::GetProperty(isolate->initial_object_prototype(), |
- Handle<Symbol>::cast(raw_key))); |
- return *result; |
- } |
- |
- // Convert the key to a string. |
- Handle<Object> converted; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, converted, |
- Object::ToString(isolate, raw_key)); |
- Handle<String> key = Handle<String>::cast(converted); |
- |
- // Try to convert the string key into an array index. |
- if (key->AsArrayIndex(&index)) { |
- if (index < argument_count) { |
- return *arguments[index]; |
- } else { |
- Handle<Object> initial_prototype(isolate->initial_object_prototype()); |
- Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Object::GetElement(isolate, initial_prototype, index)); |
- return *result; |
- } |
- } |
- |
- // Handle special arguments properties. |
- if (String::Equals(isolate->factory()->length_string(), key)) { |
- return Smi::FromInt(argument_count); |
- } |
- if (String::Equals(isolate->factory()->callee_string(), key)) { |
- JavaScriptFrameIterator it(isolate); |
- JSFunction* function = it.frame()->function(); |
- if (is_strict(function->shared()->language_mode())) { |
- THROW_NEW_ERROR_RETURN_FAILURE( |
- isolate, NewTypeError(MessageTemplate::kStrictPoisonPill)); |
- } |
- return function; |
- } |
- |
- // Lookup in the initial Object.prototype object. |
- Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Object::GetProperty(isolate->initial_object_prototype(), key)); |
- return *result; |
-} |
} // namespace internal |
} // namespace v8 |