Chromium Code Reviews| Index: src/runtime/runtime-object.cc |
| diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc |
| index 18078fc78f1dc14b9b8a435cbf03c989d18d8589..716e2985ff83eef3207265611583ee3f57749dd4 100644 |
| --- a/src/runtime/runtime-object.cc |
| +++ b/src/runtime/runtime-object.cc |
| @@ -1590,5 +1590,42 @@ RUNTIME_FUNCTION(RuntimeReference_ClassOf) { |
| if (!obj->IsJSReceiver()) return isolate->heap()->null_value(); |
| return JSReceiver::cast(obj)->class_name(); |
| } |
| + |
| + |
| +RUNTIME_FUNCTION(Runtime_DefineGetterPropertyUnchecked) { |
| + HandleScope scope(isolate); |
| + DCHECK(args.length() == 3); |
| + CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); |
| + CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
|
Dmitry Lomov (no reviews)
2014/12/12 15:11:58
Feels weird that DefineDataPropertyUnchecked takes
arv (Not doing code reviews)
2014/12/12 16:49:34
I agree.
I ended up changing all the runtime func
|
| + CONVERT_ARG_HANDLE_CHECKED(JSFunction, getter, 2); |
| + |
| + Handle<Name> name; |
| + ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, name, |
| + Runtime::ToName(isolate, key)); |
| + |
| + RETURN_FAILURE_ON_EXCEPTION( |
| + isolate, |
| + JSObject::DefineAccessor(object, name, getter, |
| + isolate->factory()->null_value(), NONE)); |
| + return isolate->heap()->undefined_value(); |
| +} |
| + |
| + |
| +RUNTIME_FUNCTION(Runtime_DefineSetterPropertyUnchecked) { |
| + HandleScope scope(isolate); |
| + DCHECK(args.length() == 3); |
| + CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); |
| + CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
| + CONVERT_ARG_HANDLE_CHECKED(JSFunction, setter, 2); |
| + |
| + Handle<Name> name; |
| + ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, name, |
| + Runtime::ToName(isolate, key)); |
| + RETURN_FAILURE_ON_EXCEPTION( |
| + isolate, |
| + JSObject::DefineAccessor(object, name, isolate->factory()->null_value(), |
| + setter, NONE)); |
| + return isolate->heap()->undefined_value(); |
| +} |
| } |
| } // namespace v8::internal |