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); |
+ 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 |