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,
i::Handle<i::Object> key_obj = Utils::OpenHandle(*key);
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
EXCEPTION_PREAMBLE(isolate);
i::Handle<i::Object> obj = i::SetProperty(
i::Handle<i::Object> obj = i::Runtime::SetObjectProperty(
isolate,
self,
key_obj,
......
......@@ -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> key,
Handle<Object> value,
......
......@@ -228,13 +228,6 @@ void FlattenString(Handle<String> str);
// string.
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> key,
Handle<Object> value,
......
......@@ -1920,8 +1920,13 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
Handle<Object> value,
ICMissMode miss_mode) {
if (MigrateDeprecated(object)) {
return Runtime::SetObjectPropertyOrFail(
isolate(), object , key, value, NONE, strict_mode());
Handle<Object> result = Runtime::SetObjectProperty(isolate(), object,
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
......@@ -1986,8 +1991,12 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
}
if (maybe_object) return maybe_object;
return Runtime::SetObjectPropertyOrFail(
isolate(), object , key, value, NONE, strict_mode());
Handle<Object> result = Runtime::SetObjectProperty(isolate(), object, key,
value,
NONE,
strict_mode());
RETURN_IF_EMPTY_HANDLE(isolate(), result);
return *result;
}
......@@ -2218,12 +2227,12 @@ RUNTIME_FUNCTION(MaybeObject*, StoreIC_Slow) {
Handle<Object> key = args.at<Object>(1);
Handle<Object> value = args.at<Object>(2);
StrictModeFlag strict_mode = ic.strict_mode();
return Runtime::SetObjectProperty(isolate,
object,
key,
Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
value,
NONE,
strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
}
......@@ -2235,12 +2244,12 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_Slow) {
Handle<Object> key = args.at<Object>(1);
Handle<Object> value = args.at<Object>(2);
StrictModeFlag strict_mode = ic.strict_mode();
return Runtime::SetObjectProperty(isolate,
object,
key,
Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
value,
NONE,
strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
}
......@@ -2268,12 +2277,12 @@ RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) {
JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
map->elements_kind());
}
return Runtime::SetObjectProperty(isolate,
object,
key,
Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
value,
NONE,
strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
}
......
This diff is collapsed.
......@@ -776,15 +776,7 @@ class Runtime : public AllStatic {
Handle<Object> object,
uint32_t index);
MUST_USE_RESULT static MaybeObject* SetObjectProperty(
Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
Handle<Object> value,
PropertyAttributes attr,
StrictModeFlag strict_mode);
MUST_USE_RESULT static MaybeObject* SetObjectPropertyOrFail(
static Handle<Object> SetObjectProperty(
Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
......
......@@ -374,15 +374,14 @@ bool ScopeInfo::CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info,
int end = start + local_count;
for (int i = start; i < end; ++i) {
int context_index = Context::MIN_CONTEXT_SLOTS + i - start;
RETURN_IF_EMPTY_HANDLE_VALUE(
Handle<Object> result = Runtime::SetObjectProperty(
isolate,
SetProperty(isolate,
scope_object,
Handle<String>(String::cast(scope_info->get(i))),
Handle<Object>(context->get(context_index), isolate),
::NONE,
kNonStrictMode),
false);
kNonStrictMode);
RETURN_IF_EMPTY_HANDLE_VALUE(isolate, result, false);
}
return true;
}
......
......@@ -92,7 +92,8 @@ static void SetGlobalProperty(const char* name, Object* value) {
Handle<String> internalized_name =
isolate->factory()->InternalizeUtf8String(name);
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 {
v8::Utils::OpenHandle(*context_->Global())));
Handle<v8::internal::String> debug_string =
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),
DONT_ENUM,
::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