--- a/js/src/tests/ecma_6/Symbol/as-base-value.js
+++ b/js/src/tests/ecma_6/Symbol/as-base-value.js
@@ -17,38 +17,41 @@ var symbols = [
// Test accessor property, used below.
var gets, sets;
Object.defineProperty(Symbol.prototype, "prop", {
get: function () {
"use strict";
gets++;
assertEq(typeof this, "object");
assertEq(this instanceof Symbol, true);
+ assertEq(this.valueOf(), sym);
return "got";
},
set: function (v) {
"use strict";
sets++;
assertEq(typeof this, "object");
assertEq(this instanceof Symbol, true);
+ assertEq(this.valueOf(), sym);
assertEq(v, "newvalue");
}
});
for (var sym of symbols) {
assertEq(sym.constructor, Symbol);
// method on Object.prototype
assertEq(sym.hasOwnProperty("constructor"), false);
assertEq(sym.toLocaleString(), sym.toString()); // once .toString() exists
// custom method monkeypatched onto Symbol.prototype
Symbol.prototype.nonStrictMethod = function (arg) {
assertEq(arg, "ok");
assertEq(this instanceof Symbol, true);
+ assertEq(this.valueOf(), sym);
return 13;
};
assertEq(sym.nonStrictMethod("ok"), 13);
// the same, but strict mode
Symbol.prototype.strictMethod = function (arg) {
"use strict";
assertEq(arg, "ok2");