Commit ef0c647c authored by rafaelw@chromium.org's avatar rafaelw@chromium.org

Handlify Runtime::SetObjectProperty

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/62333002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent dccc06e1
...@@ -3136,7 +3136,7 @@ bool v8::Object::Set(v8::Handle<Value> key, v8::Handle<Value> value, ...@@ -3136,7 +3136,7 @@ bool v8::Object::Set(v8::Handle<Value> key, v8::Handle<Value> value,
i::Handle<i::Object> key_obj = Utils::OpenHandle(*key); i::Handle<i::Object> key_obj = Utils::OpenHandle(*key);
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
EXCEPTION_PREAMBLE(isolate); EXCEPTION_PREAMBLE(isolate);
i::Handle<i::Object> obj = i::SetProperty( i::Handle<i::Object> obj = i::Runtime::SetObjectProperty(
isolate, isolate,
self, self,
key_obj, key_obj,
......
...@@ -160,20 +160,6 @@ Handle<String> FlattenGetString(Handle<String> string) { ...@@ -160,20 +160,6 @@ Handle<String> FlattenGetString(Handle<String> string) {
} }
Handle<Object> SetProperty(Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
Handle<Object> value,
PropertyAttributes attributes,
StrictModeFlag strict_mode) {
CALL_HEAP_FUNCTION(
isolate,
Runtime::SetObjectProperty(
isolate, object, key, value, attributes, strict_mode),
Object);
}
Handle<Object> ForceSetProperty(Handle<JSObject> object, Handle<Object> ForceSetProperty(Handle<JSObject> object,
Handle<Object> key, Handle<Object> key,
Handle<Object> value, Handle<Object> value,
......
...@@ -228,13 +228,6 @@ void FlattenString(Handle<String> str); ...@@ -228,13 +228,6 @@ void FlattenString(Handle<String> str);
// string. // string.
Handle<String> FlattenGetString(Handle<String> str); Handle<String> FlattenGetString(Handle<String> str);
Handle<Object> SetProperty(Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
Handle<Object> value,
PropertyAttributes attributes,
StrictModeFlag strict_mode);
Handle<Object> ForceSetProperty(Handle<JSObject> object, Handle<Object> ForceSetProperty(Handle<JSObject> object,
Handle<Object> key, Handle<Object> key,
Handle<Object> value, Handle<Object> value,
......
...@@ -1920,8 +1920,13 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object, ...@@ -1920,8 +1920,13 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
Handle<Object> value, Handle<Object> value,
ICMissMode miss_mode) { ICMissMode miss_mode) {
if (MigrateDeprecated(object)) { if (MigrateDeprecated(object)) {
return Runtime::SetObjectPropertyOrFail( Handle<Object> result = Runtime::SetObjectProperty(isolate(), object,
isolate(), object , key, value, NONE, strict_mode()); key,
value,
NONE,
strict_mode());
RETURN_IF_EMPTY_HANDLE(isolate(), result);
return *result;
} }
// Check for values that can be converted into an internalized string directly // Check for values that can be converted into an internalized string directly
...@@ -1986,8 +1991,12 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object, ...@@ -1986,8 +1991,12 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
} }
if (maybe_object) return maybe_object; if (maybe_object) return maybe_object;
return Runtime::SetObjectPropertyOrFail( Handle<Object> result = Runtime::SetObjectProperty(isolate(), object, key,
isolate(), object , key, value, NONE, strict_mode()); value,
NONE,
strict_mode());
RETURN_IF_EMPTY_HANDLE(isolate(), result);
return *result;
} }
...@@ -2218,12 +2227,12 @@ RUNTIME_FUNCTION(MaybeObject*, StoreIC_Slow) { ...@@ -2218,12 +2227,12 @@ RUNTIME_FUNCTION(MaybeObject*, StoreIC_Slow) {
Handle<Object> key = args.at<Object>(1); Handle<Object> key = args.at<Object>(1);
Handle<Object> value = args.at<Object>(2); Handle<Object> value = args.at<Object>(2);
StrictModeFlag strict_mode = ic.strict_mode(); StrictModeFlag strict_mode = ic.strict_mode();
return Runtime::SetObjectProperty(isolate, Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
object,
key,
value, value,
NONE, NONE,
strict_mode); strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
} }
...@@ -2235,12 +2244,12 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_Slow) { ...@@ -2235,12 +2244,12 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_Slow) {
Handle<Object> key = args.at<Object>(1); Handle<Object> key = args.at<Object>(1);
Handle<Object> value = args.at<Object>(2); Handle<Object> value = args.at<Object>(2);
StrictModeFlag strict_mode = ic.strict_mode(); StrictModeFlag strict_mode = ic.strict_mode();
return Runtime::SetObjectProperty(isolate, Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
object,
key,
value, value,
NONE, NONE,
strict_mode); strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
} }
...@@ -2268,12 +2277,12 @@ RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) { ...@@ -2268,12 +2277,12 @@ RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) {
JSObject::TransitionElementsKind(Handle<JSObject>::cast(object), JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
map->elements_kind()); map->elements_kind());
} }
return Runtime::SetObjectProperty(isolate, Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
object,
key,
value, value,
NONE, NONE,
strict_mode); strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
} }
......
This diff is collapsed.
...@@ -776,15 +776,7 @@ class Runtime : public AllStatic { ...@@ -776,15 +776,7 @@ class Runtime : public AllStatic {
Handle<Object> object, Handle<Object> object,
uint32_t index); uint32_t index);
MUST_USE_RESULT static MaybeObject* SetObjectProperty( static Handle<Object> SetObjectProperty(
Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
Handle<Object> value,
PropertyAttributes attr,
StrictModeFlag strict_mode);
MUST_USE_RESULT static MaybeObject* SetObjectPropertyOrFail(
Isolate* isolate, Isolate* isolate,
Handle<Object> object, Handle<Object> object,
Handle<Object> key, Handle<Object> key,
......
...@@ -374,15 +374,14 @@ bool ScopeInfo::CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info, ...@@ -374,15 +374,14 @@ bool ScopeInfo::CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info,
int end = start + local_count; int end = start + local_count;
for (int i = start; i < end; ++i) { for (int i = start; i < end; ++i) {
int context_index = Context::MIN_CONTEXT_SLOTS + i - start; int context_index = Context::MIN_CONTEXT_SLOTS + i - start;
RETURN_IF_EMPTY_HANDLE_VALUE( Handle<Object> result = Runtime::SetObjectProperty(
isolate, isolate,
SetProperty(isolate,
scope_object, scope_object,
Handle<String>(String::cast(scope_info->get(i))), Handle<String>(String::cast(scope_info->get(i))),
Handle<Object>(context->get(context_index), isolate), Handle<Object>(context->get(context_index), isolate),
::NONE, ::NONE,
kNonStrictMode), kNonStrictMode);
false); RETURN_IF_EMPTY_HANDLE_VALUE(isolate, result, false);
} }
return true; return true;
} }
......
...@@ -92,7 +92,8 @@ static void SetGlobalProperty(const char* name, Object* value) { ...@@ -92,7 +92,8 @@ static void SetGlobalProperty(const char* name, Object* value) {
Handle<String> internalized_name = Handle<String> internalized_name =
isolate->factory()->InternalizeUtf8String(name); isolate->factory()->InternalizeUtf8String(name);
Handle<JSObject> global(isolate->context()->global_object()); Handle<JSObject> global(isolate->context()->global_object());
SetProperty(isolate, global, internalized_name, object, NONE, kNonStrictMode); Runtime::SetObjectProperty(isolate, global, internalized_name, object, NONE,
kNonStrictMode);
} }
......
...@@ -169,7 +169,7 @@ class DebugLocalContext { ...@@ -169,7 +169,7 @@ class DebugLocalContext {
v8::Utils::OpenHandle(*context_->Global()))); v8::Utils::OpenHandle(*context_->Global())));
Handle<v8::internal::String> debug_string = Handle<v8::internal::String> debug_string =
factory->InternalizeOneByteString(STATIC_ASCII_VECTOR("debug")); factory->InternalizeOneByteString(STATIC_ASCII_VECTOR("debug"));
SetProperty(isolate, global, debug_string, v8::internal::Runtime::SetObjectProperty(isolate, global, debug_string,
Handle<Object>(debug->debug_context()->global_proxy(), isolate), Handle<Object>(debug->debug_context()->global_proxy(), isolate),
DONT_ENUM, DONT_ENUM,
::v8::internal::kNonStrictMode); ::v8::internal::kNonStrictMode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment