summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/class/superPropDestructuring.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/class/superPropDestructuring.js')
-rw-r--r--js/src/tests/non262/class/superPropDestructuring.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/js/src/tests/non262/class/superPropDestructuring.js b/js/src/tests/non262/class/superPropDestructuring.js
new file mode 100644
index 0000000000..84d1bb517a
--- /dev/null
+++ b/js/src/tests/non262/class/superPropDestructuring.js
@@ -0,0 +1,43 @@
+class base {
+ constructor() { }
+}
+
+let seenValues;
+Object.defineProperty(base.prototype, "minutes",
+ {
+ set(x) {
+ assertEq(x, 525600);
+ seenValues.push(x);
+ }
+ });
+Object.defineProperty(base.prototype, "intendent",
+ {
+ set(x) {
+ assertEq(x, "Fred");
+ seenValues.push(x)
+ }
+ });
+
+const testArr = [525600, "Fred"];
+class derived extends base {
+ constructor() { super(); }
+ prepForTest() { seenValues = []; }
+ testAsserts() { assertDeepEq(seenValues, testArr); }
+ testProps() {
+ this.prepForTest();
+ [super.minutes, super.intendent] = testArr;
+ this.testAsserts();
+ }
+ testElems() {
+ this.prepForTest();
+ [super["minutes"], super["intendent"]] = testArr;
+ this.testAsserts();
+ }
+}
+
+let d = new derived();
+d.testProps();
+d.testElems();
+
+if (typeof reportCompare === 'function')
+ reportCompare(0,0,"OK");