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, value,
key, NONE,
value, strict_mode);
NONE, RETURN_IF_EMPTY_HANDLE(isolate, result);
strict_mode); 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, value,
key, NONE,
value, strict_mode);
NONE, RETURN_IF_EMPTY_HANDLE(isolate, result);
strict_mode); 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, value,
key, NONE,
value, strict_mode);
NONE, RETURN_IF_EMPTY_HANDLE(isolate, result);
strict_mode); return *result;
} }
......
...@@ -5122,49 +5122,36 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetDataProperty) { ...@@ -5122,49 +5122,36 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetDataProperty) {
} }
MaybeObject* Runtime::SetObjectPropertyOrFail( Handle<Object> Runtime::SetObjectProperty(Isolate* isolate,
Isolate* isolate, Handle<Object> object,
Handle<Object> object, Handle<Object> key,
Handle<Object> key, Handle<Object> value,
Handle<Object> value, PropertyAttributes attr,
PropertyAttributes attr, StrictModeFlag strict_mode) {
StrictModeFlag strict_mode) {
CALL_HEAP_FUNCTION_PASS_EXCEPTION(isolate,
SetObjectProperty(isolate, object, key, value, attr, strict_mode));
}
MaybeObject* Runtime::SetObjectProperty(Isolate* isolate,
Handle<Object> object,
Handle<Object> key,
Handle<Object> value,
PropertyAttributes attr,
StrictModeFlag strict_mode) {
SetPropertyMode set_mode = attr == NONE ? SET_PROPERTY : DEFINE_PROPERTY; SetPropertyMode set_mode = attr == NONE ? SET_PROPERTY : DEFINE_PROPERTY;
HandleScope scope(isolate);
if (object->IsUndefined() || object->IsNull()) { if (object->IsUndefined() || object->IsNull()) {
Handle<Object> args[2] = { key, object }; Handle<Object> args[2] = { key, object };
Handle<Object> error = Handle<Object> error =
isolate->factory()->NewTypeError("non_object_property_store", isolate->factory()->NewTypeError("non_object_property_store",
HandleVector(args, 2)); HandleVector(args, 2));
return isolate->Throw(*error); isolate->Throw(*error);
return Handle<Object>();
} }
if (object->IsJSProxy()) { if (object->IsJSProxy()) {
bool has_pending_exception = false; bool has_pending_exception = false;
Handle<Object> name_object = key->IsSymbol() Handle<Object> name_object = key->IsSymbol()
? key : Execution::ToString(isolate, key, &has_pending_exception); ? key : Execution::ToString(isolate, key, &has_pending_exception);
if (has_pending_exception) return Failure::Exception(); if (has_pending_exception) return Handle<Object>(); // exception
Handle<Name> name = Handle<Name>::cast(name_object); Handle<Name> name = Handle<Name>::cast(name_object);
Handle<Object> result = JSReceiver::SetProperty( return JSReceiver::SetProperty(Handle<JSProxy>::cast(object), name, value,
Handle<JSProxy>::cast(object), name, value, attr, strict_mode); attr,
RETURN_IF_EMPTY_HANDLE(isolate, result); strict_mode);
return *result;
} }
// If the object isn't a JavaScript object, we ignore the store. // If the object isn't a JavaScript object, we ignore the store.
if (!object->IsJSObject()) return *value; if (!object->IsJSObject()) return value;
Handle<JSObject> js_object = Handle<JSObject>::cast(object); Handle<JSObject> js_object = Handle<JSObject>::cast(object);
...@@ -5179,7 +5166,7 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate, ...@@ -5179,7 +5166,7 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate,
// string does nothing with the assignment then we can ignore such // string does nothing with the assignment then we can ignore such
// assignments. // assignments.
if (js_object->IsStringObjectWithCharacterAt(index)) { if (js_object->IsStringObjectWithCharacterAt(index)) {
return *value; return value;
} }
js_object->ValidateElements(); js_object->ValidateElements();
...@@ -5188,15 +5175,16 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate, ...@@ -5188,15 +5175,16 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate,
bool has_exception; bool has_exception;
Handle<Object> number = Handle<Object> number =
Execution::ToNumber(isolate, value, &has_exception); Execution::ToNumber(isolate, value, &has_exception);
if (has_exception) return Failure::Exception(); if (has_exception) return Handle<Object>(); // exception
value = number; value = number;
} }
} }
MaybeObject* result = js_object->SetElement( Handle<Object> result = JSObject::SetElement(js_object, index, value, attr,
index, *value, attr, strict_mode, true, set_mode); strict_mode,
true,
set_mode);
js_object->ValidateElements(); js_object->ValidateElements();
if (result->IsFailure()) return result; return result.is_null() ? result : value;
return *value;
} }
if (key->IsName()) { if (key->IsName()) {
...@@ -5207,37 +5195,32 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate, ...@@ -5207,37 +5195,32 @@ MaybeObject* Runtime::SetObjectProperty(Isolate* isolate,
bool has_exception; bool has_exception;
Handle<Object> number = Handle<Object> number =
Execution::ToNumber(isolate, value, &has_exception); Execution::ToNumber(isolate, value, &has_exception);
if (has_exception) return Failure::Exception(); if (has_exception) return Handle<Object>(); // exception
value = number; value = number;
} }
} }
MaybeObject* result = js_object->SetElement( return JSObject::SetElement(js_object, index, value, attr, strict_mode,
index, *value, attr, strict_mode, true, set_mode); true,
if (result->IsFailure()) return result; set_mode);
} else { } else {
if (name->IsString()) Handle<String>::cast(name)->TryFlatten(); if (name->IsString()) Handle<String>::cast(name)->TryFlatten();
Handle<Object> result = return JSReceiver::SetProperty(js_object, name, value, attr, strict_mode);
JSReceiver::SetProperty(js_object, name, value, attr, strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
} }
return *value;
} }
// Call-back into JavaScript to convert the key to a string. // Call-back into JavaScript to convert the key to a string.
bool has_pending_exception = false; bool has_pending_exception = false;
Handle<Object> converted = Handle<Object> converted =
Execution::ToString(isolate, key, &has_pending_exception); Execution::ToString(isolate, key, &has_pending_exception);
if (has_pending_exception) return Failure::Exception(); if (has_pending_exception) return Handle<Object>(); // exception
Handle<String> name = Handle<String>::cast(converted); Handle<String> name = Handle<String>::cast(converted);
if (name->AsArrayIndex(&index)) { if (name->AsArrayIndex(&index)) {
return js_object->SetElement( return JSObject::SetElement(js_object, index, value, attr, strict_mode,
index, *value, attr, strict_mode, true, set_mode); true,
set_mode);
} else { } else {
Handle<Object> result = return JSReceiver::SetProperty(js_object, name, value, attr, strict_mode);
JSReceiver::SetProperty(js_object, name, value, attr, strict_mode);
RETURN_IF_EMPTY_HANDLE(isolate, result);
return *result;
} }
} }
...@@ -5341,12 +5324,12 @@ MaybeObject* Runtime::DeleteObjectProperty(Isolate* isolate, ...@@ -5341,12 +5324,12 @@ MaybeObject* Runtime::DeleteObjectProperty(Isolate* isolate,
RUNTIME_FUNCTION(MaybeObject*, Runtime_SetProperty) { RUNTIME_FUNCTION(MaybeObject*, Runtime_SetProperty) {
SealHandleScope shs(isolate); HandleScope scope(isolate);
RUNTIME_ASSERT(args.length() == 4 || args.length() == 5); RUNTIME_ASSERT(args.length() == 4 || args.length() == 5);
Handle<Object> object = args.at<Object>(0); CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
Handle<Object> key = args.at<Object>(1); CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
Handle<Object> value = args.at<Object>(2); CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
CONVERT_SMI_ARG_CHECKED(unchecked_attributes, 3); CONVERT_SMI_ARG_CHECKED(unchecked_attributes, 3);
RUNTIME_ASSERT( RUNTIME_ASSERT(
(unchecked_attributes & ~(READ_ONLY | DONT_ENUM | DONT_DELETE)) == 0); (unchecked_attributes & ~(READ_ONLY | DONT_ENUM | DONT_DELETE)) == 0);
...@@ -5360,12 +5343,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetProperty) { ...@@ -5360,12 +5343,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetProperty) {
strict_mode = strict_mode_flag; strict_mode = strict_mode_flag;
} }
return Runtime::SetObjectProperty(isolate, Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
object, value,
key, attributes,
value, strict_mode);
attributes, RETURN_IF_EMPTY_HANDLE(isolate, result);
strict_mode); return *result;
} }
...@@ -5386,10 +5369,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetNativeFlag) { ...@@ -5386,10 +5369,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetNativeFlag) {
SealHandleScope shs(isolate); SealHandleScope shs(isolate);
RUNTIME_ASSERT(args.length() == 1); RUNTIME_ASSERT(args.length() == 1);
Handle<Object> object = args.at<Object>(0); CONVERT_ARG_CHECKED(Object, object, 0);
if (object->IsJSFunction()) { if (object->IsJSFunction()) {
JSFunction* func = JSFunction::cast(*object); JSFunction* func = JSFunction::cast(object);
func->shared()->set_native(true); func->shared()->set_native(true);
} }
return isolate->heap()->undefined_value(); return isolate->heap()->undefined_value();
...@@ -11348,12 +11331,12 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector( ...@@ -11348,12 +11331,12 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector(
RETURN_IF_EMPTY_HANDLE_VALUE( RETURN_IF_EMPTY_HANDLE_VALUE(
isolate, isolate,
SetProperty(isolate, Runtime::SetObjectProperty(isolate,
target, target,
Handle<String>(scope_info->ParameterName(i)), Handle<String>(scope_info->ParameterName(i)),
value, value,
NONE, NONE,
kNonStrictMode), kNonStrictMode),
Handle<JSObject>()); Handle<JSObject>());
} }
...@@ -11364,12 +11347,13 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector( ...@@ -11364,12 +11347,13 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector(
RETURN_IF_EMPTY_HANDLE_VALUE( RETURN_IF_EMPTY_HANDLE_VALUE(
isolate, isolate,
SetProperty(isolate, Runtime::SetObjectProperty(
target, isolate,
Handle<String>(scope_info->StackLocalName(i)), target,
value, Handle<String>(scope_info->StackLocalName(i)),
NONE, value,
kNonStrictMode), NONE,
kNonStrictMode),
Handle<JSObject>()); Handle<JSObject>());
} }
...@@ -11447,12 +11431,12 @@ static Handle<JSObject> MaterializeLocalContext(Isolate* isolate, ...@@ -11447,12 +11431,12 @@ static Handle<JSObject> MaterializeLocalContext(Isolate* isolate,
Handle<String> key(String::cast(keys->get(i))); Handle<String> key(String::cast(keys->get(i)));
RETURN_IF_EMPTY_HANDLE_VALUE( RETURN_IF_EMPTY_HANDLE_VALUE(
isolate, isolate,
SetProperty(isolate, Runtime::SetObjectProperty(isolate,
target, target,
key, key,
GetProperty(isolate, ext, key), GetProperty(isolate, ext, key),
NONE, NONE,
kNonStrictMode), kNonStrictMode),
Handle<JSObject>()); Handle<JSObject>());
} }
} }
...@@ -11552,12 +11536,9 @@ static bool SetLocalVariableValue(Isolate* isolate, ...@@ -11552,12 +11536,9 @@ static bool SetLocalVariableValue(Isolate* isolate,
if (JSReceiver::HasProperty(ext, variable_name)) { if (JSReceiver::HasProperty(ext, variable_name)) {
// We don't expect this to do anything except replacing // We don't expect this to do anything except replacing
// property value. // property value.
SetProperty(isolate, Runtime::SetObjectProperty(isolate, ext, variable_name, new_value,
ext, NONE,
variable_name, kNonStrictMode);
new_value,
NONE,
kNonStrictMode);
return true; return true;
} }
} }
...@@ -11603,12 +11584,10 @@ static Handle<JSObject> MaterializeClosure(Isolate* isolate, ...@@ -11603,12 +11584,10 @@ static Handle<JSObject> MaterializeClosure(Isolate* isolate,
Handle<String> key(String::cast(keys->get(i))); Handle<String> key(String::cast(keys->get(i)));
RETURN_IF_EMPTY_HANDLE_VALUE( RETURN_IF_EMPTY_HANDLE_VALUE(
isolate, isolate,
SetProperty(isolate, Runtime::SetObjectProperty(isolate, closure_scope, key,
closure_scope, GetProperty(isolate, ext, key),
key, NONE,
GetProperty(isolate, ext, key), kNonStrictMode),
NONE,
kNonStrictMode),
Handle<JSObject>()); Handle<JSObject>());
} }
} }
...@@ -11639,12 +11618,9 @@ static bool SetClosureVariableValue(Isolate* isolate, ...@@ -11639,12 +11618,9 @@ static bool SetClosureVariableValue(Isolate* isolate,
Handle<JSObject> ext(JSObject::cast(context->extension())); Handle<JSObject> ext(JSObject::cast(context->extension()));
if (JSReceiver::HasProperty(ext, variable_name)) { if (JSReceiver::HasProperty(ext, variable_name)) {
// We don't expect this to do anything except replacing property value. // We don't expect this to do anything except replacing property value.
SetProperty(isolate, Runtime::SetObjectProperty(isolate, ext, variable_name, new_value,
ext, NONE,
variable_name, kNonStrictMode);
new_value,
NONE,
kNonStrictMode);
return true; return true;
} }
} }
...@@ -11665,12 +11641,9 @@ static Handle<JSObject> MaterializeCatchScope(Isolate* isolate, ...@@ -11665,12 +11641,9 @@ static Handle<JSObject> MaterializeCatchScope(Isolate* isolate,
isolate->factory()->NewJSObject(isolate->object_function()); isolate->factory()->NewJSObject(isolate->object_function());
RETURN_IF_EMPTY_HANDLE_VALUE( RETURN_IF_EMPTY_HANDLE_VALUE(
isolate, isolate,
SetProperty(isolate, Runtime::SetObjectProperty(isolate, catch_scope, name, thrown_object,
catch_scope, NONE,
name, kNonStrictMode),
thrown_object,
NONE,
kNonStrictMode),
Handle<JSObject>()); Handle<JSObject>());
return catch_scope; return catch_scope;
} }
...@@ -12688,12 +12661,11 @@ static Handle<JSObject> MaterializeArgumentsObject( ...@@ -12688,12 +12661,11 @@ static Handle<JSObject> MaterializeArgumentsObject(
// FunctionGetArguments can't throw an exception. // FunctionGetArguments can't throw an exception.
Handle<JSObject> arguments = Handle<JSObject>::cast( Handle<JSObject> arguments = Handle<JSObject>::cast(
Accessors::FunctionGetArguments(function)); Accessors::FunctionGetArguments(function));
SetProperty(isolate, Runtime::SetObjectProperty(isolate, target,
target, isolate->factory()->arguments_string(),
isolate->factory()->arguments_string(), arguments,
arguments, ::NONE,
::NONE, kNonStrictMode);
kNonStrictMode);
return target; return target;
} }
......
...@@ -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), RETURN_IF_EMPTY_HANDLE_VALUE(isolate, result, false);
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,10 +169,10 @@ class DebugLocalContext { ...@@ -169,10 +169,10 @@ 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);
} }
private: private:
......
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