Index: src/js/v8natives.js |
diff --git a/src/js/v8natives.js b/src/js/v8natives.js |
index 9098e82bf2424b6733748f8956bfaff8a0709313..3ba39cf4b76051cfab6f28fda7d7eba706b690a7 100644 |
--- a/src/js/v8natives.js |
+++ b/src/js/v8natives.js |
@@ -104,6 +104,22 @@ |
throw %make_type_error(kCalledNonCallable, typeof func); |
} |
+// ES6 B.2.2.1.1 |
+function ObjectGetProto() { |
+ return %object_get_prototype_of(this); |
+} |
+ |
+ |
+// ES6 B.2.2.1.2 |
+function ObjectSetProto(proto) { |
+ CHECK_OBJECT_COERCIBLE(this, "Object.prototype.__proto__"); |
+ |
+ if ((IS_RECEIVER(proto) || IS_NULL(proto)) && IS_RECEIVER(this)) { |
+ %SetPrototype(this, proto); |
+ } |
+} |
+ |
+ |
// ES6 19.1.1.1 |
function ObjectConstructor(x) { |
if (GlobalObject != new.target && !IS_UNDEFINED(new.target)) { |
@@ -135,6 +151,8 @@ |
// __defineSetter__ is added in bootstrapper.cc. |
// __lookupSetter__ is added in bootstrapper.cc. |
]); |
+utils.InstallGetterSetter( |
+ GlobalObject.prototype, "__proto__", ObjectGetProto, ObjectSetProto); |
// ---------------------------------------------------------------------------- |