diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2019-06-08 17:19:11 -0400 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2019-07-18 22:38:20 -0400 |
commit | cefee262b7059d035667b148d56ebc7af5120d37 (patch) | |
tree | bb2feca588ba2555b2559fdada273934335ae31b /js/src/builtin | |
parent | d074844a4e758209dcfd8ce12720680edd957b42 (diff) | |
download | UXP-cefee262b7059d035667b148d56ebc7af5120d37.tar UXP-cefee262b7059d035667b148d56ebc7af5120d37.tar.gz UXP-cefee262b7059d035667b148d56ebc7af5120d37.tar.lz UXP-cefee262b7059d035667b148d56ebc7af5120d37.tar.xz UXP-cefee262b7059d035667b148d56ebc7af5120d37.zip |
1333143 - Self-host Object.prototype.valueOf.
Diffstat (limited to 'js/src/builtin')
-rw-r--r-- | js/src/builtin/Object.cpp | 14 | ||||
-rw-r--r-- | js/src/builtin/Object.h | 3 | ||||
-rw-r--r-- | js/src/builtin/Object.js | 6 |
3 files changed, 7 insertions, 16 deletions
diff --git a/js/src/builtin/Object.cpp b/js/src/builtin/Object.cpp index 389bb57db..e4bee5457 100644 --- a/js/src/builtin/Object.cpp +++ b/js/src/builtin/Object.cpp @@ -525,18 +525,6 @@ js::obj_toString(JSContext* cx, unsigned argc, Value* vp) return true; } - -bool -js::obj_valueOf(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - RootedObject obj(cx, ToObject(cx, args.thisv())); - if (!obj) - return false; - args.rval().setObject(*obj); - return true; -} - static bool obj_setPrototypeOf(JSContext* cx, unsigned argc, Value* vp) { @@ -1301,7 +1289,7 @@ static const JSFunctionSpec object_methods[] = { #endif JS_FN(js_toString_str, obj_toString, 0,0), JS_SELF_HOSTED_FN(js_toLocaleString_str, "Object_toLocaleString", 0, 0), - JS_FN(js_valueOf_str, obj_valueOf, 0,0), + JS_SELF_HOSTED_FN(js_valueOf_str, "Object_valueOf", 0,0), #if JS_HAS_OBJ_WATCHPOINT JS_FN(js_watch_str, obj_watch, 2,0), JS_FN(js_unwatch_str, obj_unwatch, 1,0), diff --git a/js/src/builtin/Object.h b/js/src/builtin/Object.h index 09512be36..8231888b1 100644 --- a/js/src/builtin/Object.h +++ b/js/src/builtin/Object.h @@ -25,9 +25,6 @@ obj_construct(JSContext* cx, unsigned argc, JS::Value* vp); MOZ_MUST_USE bool obj_propertyIsEnumerable(JSContext* cx, unsigned argc, Value* vp); -MOZ_MUST_USE bool -obj_valueOf(JSContext* cx, unsigned argc, JS::Value* vp); - PlainObject* ObjectCreateImpl(JSContext* cx, HandleObject proto, NewObjectKind newKind = GenericObject, HandleObjectGroup group = nullptr); diff --git a/js/src/builtin/Object.js b/js/src/builtin/Object.js index a7440aec7..9ed1be0e1 100644 --- a/js/src/builtin/Object.js +++ b/js/src/builtin/Object.js @@ -87,6 +87,12 @@ function Object_toLocaleString() { return callContentFunction(O.toString, O); } +// ES 2017 draft bb96899bb0d9ef9be08164a26efae2ee5f25e875 19.1.3.7 +function Object_valueOf() { + // Step 1. + return ToObject(this); +} + // ES7 draft (2016 March 8) B.2.2.3 function ObjectDefineSetter(name, setter) { // Step 1. |