From 28a66ceb75b5b4061e10c23437c985247c49659c Mon Sep 17 00:00:00 2001
From: Joyee Cheung <joyee@igalia.com>
Date: Fri, 8 Jun 2018 04:54:24 +0800
Subject: [PATCH] Use propertyHelper, add more tests, fix getter calls

---
 .../Symbol/prototype/description/descriptor.js | 14 ++++++++++----
 .../Symbol/prototype/description/get.js        |  8 ++++++++
 .../description/this-val-non-symbol.js         | 18 +++++++++++-------
 .../Symbol/prototype/description/wrapper.js    |  8 ++++++++
 4 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/test/built-ins/Symbol/prototype/description/descriptor.js b/test/built-ins/Symbol/prototype/description/descriptor.js
index 0b3d2db3c3..bc66519624 100644
--- a/test/built-ins/Symbol/prototype/description/descriptor.js
+++ b/test/built-ins/Symbol/prototype/description/descriptor.js
@@ -8,12 +8,18 @@ description: >
 info: |
     `Symbol.prototype.description` is an accessor property whose
     set accessor function is undefined.
+includes: [propertyHelper.js]
 features: [Symbol.prototype.description]
 ---*/
 
-const desc = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description');
-assert.sameValue(typeof desc.get, 'function');
+
+var desc = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description');
+
 assert.sameValue(desc.set, undefined);
 assert.sameValue(desc.writable, undefined);
-assert.sameValue(desc.enumerable, false);
-assert.sameValue(desc.configurable, true);
+assert.sameValue(typeof desc.get, 'function');
+
+verifyProperty(Symbol.prototype, 'description', {
+  enumerable: false,
+  configurable: true,
+});
diff --git a/test/built-ins/Symbol/prototype/description/get.js b/test/built-ins/Symbol/prototype/description/get.js
index 64c18dced0..54c0fb06b2 100644
--- a/test/built-ins/Symbol/prototype/description/get.js
+++ b/test/built-ins/Symbol/prototype/description/get.js
@@ -19,3 +19,11 @@ assert.sameValue(symbol.hasOwnProperty('description'), false);
 const empty = Symbol();
 assert.sameValue(empty.description, undefined);
 assert.sameValue(empty.hasOwnProperty('description'), false);
+
+const undef = Symbol(undefined);
+assert.sameValue(undef.description, undefined);
+assert.sameValue(undef.hasOwnProperty('description'), false);
+
+const emptyStr = Symbol('');
+assert.sameValue(emptyStr.description, '');
+assert.sameValue(emptyStr.hasOwnProperty('description'), false);
diff --git a/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js b/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js
index 89e222d444..0d2fc40b18 100644
--- a/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js
+++ b/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js
@@ -13,30 +13,34 @@ info: |
 features: [Symbol.prototype.description]
 ---*/
 
+const getter = Object.getOwnPropertyDescriptor(
+  Symbol.prototype, 'description'
+).get;
+
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call(null);
+  getter.call(null);
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call(123);
+  getter.call(123);
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call('test');
+  getter.call('test');
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call(true);
+  getter.call(true);
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call(undefined);
+  getter.call(undefined);
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call(new Proxy({}, {}));
+  getter.call(new Proxy({}, {}));
 });
 
 assert.throws(TypeError, function() {
-  Symbol.prototype.description.call({});
+  getter.call({});
 });
diff --git a/test/built-ins/Symbol/prototype/description/wrapper.js b/test/built-ins/Symbol/prototype/description/wrapper.js
index 4acb78fe6a..c117f1b73c 100644
--- a/test/built-ins/Symbol/prototype/description/wrapper.js
+++ b/test/built-ins/Symbol/prototype/description/wrapper.js
@@ -19,3 +19,11 @@ assert.sameValue(symbol.hasOwnProperty('description'), false);
 const empty = Object(Symbol());
 assert.sameValue(empty.description, undefined);
 assert.sameValue(empty.hasOwnProperty('description'), false);
+
+const undef = Object(Symbol(undefined));
+assert.sameValue(undef.description, undefined);
+assert.sameValue(undef.hasOwnProperty('description'), false);
+
+const emptyStr = Object(Symbol(''));
+assert.sameValue(emptyStr.description, '');
+assert.sameValue(emptyStr.hasOwnProperty('description'), false);
-- 
GitLab