From 30a4a5da7dbed1492a1deae7a8e03963173d418d Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Tue, 26 May 2015 12:33:20 -0400 Subject: [PATCH] fixup! Add tests for MethodDefinition forms new to ES6 Avoid extending builtin prototype and consistently define a shadowing property on the object instance to help recognize a possible implementation bug. --- .../generator-super-prop-body.js | 20 +++++++---------- .../generator-super-prop-param.js | 20 ++++++----------- .../method-definition/name-super-prop-body.js | 22 +++++++------------ .../name-super-prop-param.js | 21 ++++++------------ 4 files changed, 30 insertions(+), 53 deletions(-) diff --git a/test/language/expressions/object/method-definition/generator-super-prop-body.js b/test/language/expressions/object/method-definition/generator-super-prop-body.js index b58475f5de..d4c4a310aa 100644 --- a/test/language/expressions/object/method-definition/generator-super-prop-body.js +++ b/test/language/expressions/object/method-definition/generator-super-prop-body.js @@ -10,18 +10,14 @@ author: Sam Mikes description: GeneratorMethod body uses SuperProperty (allowed) ---*/ -var value = {}; var obj; -try { - Object.prototype.Test262Attr = value; - obj = { - *foo() { - return super.Test262Attr; - } - }; +var obj = { + *foo() { + return super.toString; + } +}; - assert.sameValue(obj.foo().next().value, value); -} finally { - delete Object.prototype.Test262Attr; -} +obj.toString = null; + +assert.sameValue(obj.foo().next().value, Object.prototype.toString); diff --git a/test/language/expressions/object/method-definition/generator-super-prop-param.js b/test/language/expressions/object/method-definition/generator-super-prop-param.js index 41317847c5..19f1c39599 100644 --- a/test/language/expressions/object/method-definition/generator-super-prop-param.js +++ b/test/language/expressions/object/method-definition/generator-super-prop-param.js @@ -11,18 +11,12 @@ description: GeneratorMethod uses SuperProperty (allowed) features: [ default-arg, generator, super ] ---*/ -var value = {}; -var obj; +var obj = { + *foo(a = super.toString) { + return a; + } +}; -try { - Object.prototype.Test262Attr = value; - obj = { - *foo(a = super.Test262Attr) { - return a; - } - }; +obj.toString = null; - assert.sameValue(obj.foo().next().value, value); -} finally { - delete Object.prototype.Test262Attr; -} +assert.sameValue(obj.foo().next().value, Object.prototype.toString); diff --git a/test/language/expressions/object/method-definition/name-super-prop-body.js b/test/language/expressions/object/method-definition/name-super-prop-body.js index 0fbfbb5d01..2b15a2aa18 100644 --- a/test/language/expressions/object/method-definition/name-super-prop-body.js +++ b/test/language/expressions/object/method-definition/name-super-prop-body.js @@ -8,18 +8,12 @@ es6id: 14.3.8 features: [super] ---*/ -var value = {}; -var obj; +var obj = { + method() { + return super.toString; + } +}; -try { - Object.prototype.Test262Attr = value; - obj = { - Test262Attr: null, - method() { - return super.Test262Attr; - } - }; - assert.sameValue(obj.method(), value); -} finally { - delete Object.prototype.Test262Attr; -} +obj.toString = null; + +assert.sameValue(obj.method(), Object.prototype.toString); diff --git a/test/language/expressions/object/method-definition/name-super-prop-param.js b/test/language/expressions/object/method-definition/name-super-prop-param.js index 28f35f3e77..8734b8ee2c 100644 --- a/test/language/expressions/object/method-definition/name-super-prop-param.js +++ b/test/language/expressions/object/method-definition/name-super-prop-param.js @@ -8,19 +8,12 @@ es6id: 14.3.8 features: [super] ---*/ -var value = {}; -var obj; +var obj = { + method(x = super.toString) { + return x; + } +}; -try { - Object.prototype.Test262Attr = value; - obj = { - Test262Attr: null, - method(x = super.Test262Attr) { - return x; - } - }; +obj.toString = null; - assert.sameValue(obj.method(), value); -} finally { - delete Object.prototype.Test262Attr; -} +assert.sameValue(obj.method(), Object.prototype.toString);