| OLD | NEW | 
|     1 // Copyright 2014 the V8 project authors. All rights reserved. |     1 // Copyright 2014 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 // Flags: --allow-natives-syntax |     5 // Flags: --allow-natives-syntax | 
|     6 // Flags: --harmony-destructuring --harmony-rest-parameters --harmony-sloppy |     6 // Flags: --harmony-destructuring --harmony-rest-parameters --harmony-sloppy | 
|     7  |     7  | 
|     8 (function TestSuperNamedLoads() { |     8 (function TestSuperNamedLoads() { | 
|     9   function Base() { } |     9   function Base() { } | 
|    10   function fBase() { } |    10   function fBase() { } | 
| (...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   942       assertEquals(55, this.ownReadOnly); |   942       assertEquals(55, this.ownReadOnly); | 
|   943       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); |   943       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); | 
|   944       assertEquals(55, descr.value); |   944       assertEquals(55, descr.value); | 
|   945       assertTrue(descr.configurable); |   945       assertTrue(descr.configurable); | 
|   946       assertFalse(descr.enumerable); |   946       assertFalse(descr.enumerable); | 
|   947       assertFalse(descr.writable); |   947       assertFalse(descr.writable); | 
|   948       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); |   948       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); | 
|   949  |   949  | 
|   950       assertEquals(15, this.ownReadonlyAccessor); |   950       assertEquals(15, this.ownReadonlyAccessor); | 
|   951       super.ownReadonlyAccessor = 25; |   951       super.ownReadonlyAccessor = 25; | 
|   952       assertEquals(25, this.ownReadonlyAccessor); |   952       assertSame(undefined, super.ownReadonlyAccessor); | 
|   953       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadonlyAccessor'); |   953       assertEquals(15, this.ownReadonlyAccessor); | 
|   954       assertEquals(25, descr.value); |  | 
|   955       assertTrue(descr.configurable); |  | 
|   956       assertFalse(descr.enumerable); |  | 
|   957       assertTrue(descr.writable); |  | 
|   958       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); |   954       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); | 
|   959  |   955  | 
|   960       super.ownSetter = 35; |   956       super.ownSetter = 35; | 
|   961       assertEquals(35, this.ownSetter); |   957       assertSame(undefined, super.ownSetter); | 
|   962       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); |   958       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); | 
|   963       assertEquals(35, descr.value); |   959       assertTrue('set' in descr); | 
|   964       assertTrue(descr.configurable); |  | 
|   965       assertFalse(descr.enumerable); |  | 
|   966       assertTrue(descr.writable); |  | 
|   967       assertFalse(Base.prototype.hasOwnProperty('ownSetter')); |   960       assertFalse(Base.prototype.hasOwnProperty('ownSetter')); | 
|   968     }, |   961     }, | 
|   969     mStrict() { |   962     mStrict() { | 
|   970       'use strict'; |   963       'use strict'; | 
|   971       assertEquals(42, this.ownReadOnly); |   964       assertEquals(42, this.ownReadOnly); | 
|   972       super.ownReadOnly = 55; |   965       super.ownReadOnly = 55; | 
|   973       assertEquals(55, this.ownReadOnly); |   966       assertEquals(55, this.ownReadOnly); | 
|   974       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); |   967       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); | 
|   975       assertEquals(55, descr.value); |   968       assertEquals(55, descr.value); | 
|   976       assertTrue(descr.configurable); |   969       assertTrue(descr.configurable); | 
|   977       assertFalse(descr.enumerable); |   970       assertFalse(descr.enumerable); | 
|   978       assertFalse(descr.writable); |   971       assertFalse(descr.writable); | 
|   979       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); |   972       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); | 
|   980  |   973  | 
|   981       assertEquals(15, this.ownReadonlyAccessor); |   974       assertEquals(15, this.ownReadonlyAccessor); | 
|   982       super.ownReadonlyAccessor = 25; |   975       assertThrows(() => {super.ownReadonlyAccessor = 25}, TypeError); | 
|   983       assertEquals(25, this.ownReadonlyAccessor); |   976       assertSame(undefined, super.ownReadonlyAccessor); | 
|   984       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadonlyAccessor'); |   977       assertEquals(15, this.ownReadonlyAccessor); | 
|   985       assertEquals(25, descr.value); |  | 
|   986       assertTrue(descr.configurable); |  | 
|   987       assertFalse(descr.enumerable); |  | 
|   988       assertTrue(descr.writable); |  | 
|   989       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); |   978       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); | 
|   990  |   979  | 
|   991       super.ownSetter = 35; |   980       assertThrows(() => {super.ownSetter = 35}, TypeError); | 
|   992       assertEquals(35, this.ownSetter); |   981       assertSame(undefined, super.ownSetter); | 
|   993       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); |   982       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); | 
|   994       assertEquals(35, descr.value); |   983       assertTrue('set' in descr); | 
|   995       assertTrue(descr.configurable); |  | 
|   996       assertFalse(descr.enumerable); |  | 
|   997       assertTrue(descr.writable); |  | 
|   998       assertFalse(Base.prototype.hasOwnProperty('ownSetter')); |   984       assertFalse(Base.prototype.hasOwnProperty('ownSetter')); | 
|   999     }, |   985     }, | 
|  1000   }; |   986   }; | 
|  1001  |   987  | 
|  1002   var d = new Derived(); |   988   var d = new Derived(); | 
|  1003   Object.defineProperty(d, 'ownReadOnly', { |   989   Object.defineProperty(d, 'ownReadOnly', { | 
|  1004     value: 42, |   990     value: 42, | 
|  1005     writable: false, |   991     writable: false, | 
|  1006     configurable: true |   992     configurable: true | 
|  1007   }); |   993   }); | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1045       assertEquals(42, this.ownReadOnly); |  1031       assertEquals(42, this.ownReadOnly); | 
|  1046       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); |  1032       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadOnly'); | 
|  1047       assertEquals(42, descr.value); |  1033       assertEquals(42, descr.value); | 
|  1048       assertFalse(descr.configurable); |  1034       assertFalse(descr.configurable); | 
|  1049       assertFalse(descr.enumerable); |  1035       assertFalse(descr.enumerable); | 
|  1050       assertFalse(descr.writable); |  1036       assertFalse(descr.writable); | 
|  1051       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); |  1037       assertFalse(Base.prototype.hasOwnProperty('ownReadOnly')); | 
|  1052  |  1038  | 
|  1053       assertEquals(15, this.ownReadonlyAccessor); |  1039       assertEquals(15, this.ownReadonlyAccessor); | 
|  1054       super.ownReadonlyAccessor = 25; |  1040       super.ownReadonlyAccessor = 25; | 
 |  1041       assertSame(undefined, super.ownReadonlyAccessor); | 
|  1055       assertEquals(15, this.ownReadonlyAccessor); |  1042       assertEquals(15, this.ownReadonlyAccessor); | 
|  1056       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadonlyAccessor'); |  1043       var descr = Object.getOwnPropertyDescriptor(this, 'ownReadonlyAccessor'); | 
|  1057       assertFalse(descr.configurable); |  1044       assertFalse(descr.configurable); | 
|  1058       assertFalse(descr.enumerable); |  1045       assertFalse(descr.enumerable); | 
|  1059       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); |  1046       assertFalse(Base.prototype.hasOwnProperty('ownReadonlyAccessor')); | 
|  1060  |  1047  | 
|  1061       super.ownSetter = 35; |  1048       super.ownSetter = 35; | 
|  1062       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); |  1049       var descr = Object.getOwnPropertyDescriptor(this, 'ownSetter'); | 
|  1063       assertFalse(descr.configurable); |  1050       assertFalse(descr.configurable); | 
|  1064       assertFalse(descr.enumerable); |  1051       assertFalse(descr.enumerable); | 
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1183       assertEquals(55, this[ownReadOnly]); |  1170       assertEquals(55, this[ownReadOnly]); | 
|  1184       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); |  1171       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); | 
|  1185       assertEquals(55, descr.value); |  1172       assertEquals(55, descr.value); | 
|  1186       assertTrue(descr.configurable); |  1173       assertTrue(descr.configurable); | 
|  1187       assertFalse(descr.enumerable); |  1174       assertFalse(descr.enumerable); | 
|  1188       assertFalse(descr.writable); |  1175       assertFalse(descr.writable); | 
|  1189       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); |  1176       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); | 
|  1190  |  1177  | 
|  1191       assertEquals(15, this[ownReadonlyAccessor]); |  1178       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1192       super[ownReadonlyAccessor] = 25; |  1179       super[ownReadonlyAccessor] = 25; | 
|  1193       assertEquals(25, this[ownReadonlyAccessor]); |  1180       assertSame(undefined, super[ownReadonlyAccessor]); | 
|  1194       var descr = Object.getOwnPropertyDescriptor(this, ownReadonlyAccessor); |  1181       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1195       assertEquals(25, descr.value); |  | 
|  1196       assertTrue(descr.configurable); |  | 
|  1197       assertFalse(descr.enumerable); |  | 
|  1198       assertTrue(descr.writable); |  | 
|  1199       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); |  1182       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); | 
|  1200  |  1183  | 
|  1201       super[ownSetter] = 35; |  1184       super[ownSetter] = 35; | 
|  1202       assertEquals(35, this[ownSetter]); |  1185       assertSame(undefined, super[ownSetter]); | 
|  1203       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); |  1186       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); | 
|  1204       assertEquals(35, descr.value); |  1187       assertTrue('set' in descr); | 
|  1205       assertTrue(descr.configurable); |  | 
|  1206       assertFalse(descr.enumerable); |  | 
|  1207       assertTrue(descr.writable); |  | 
|  1208       assertFalse(Base.prototype.hasOwnProperty(ownSetter)); |  1188       assertFalse(Base.prototype.hasOwnProperty(ownSetter)); | 
|  1209     }, |  1189     }, | 
|  1210     mStrict() { |  1190     mStrict() { | 
|  1211       'use strict'; |  1191       'use strict'; | 
|  1212       assertEquals(42, this[ownReadOnly]); |  1192       assertEquals(42, this[ownReadOnly]); | 
|  1213       super[ownReadOnly] = 55; |  1193       super[ownReadOnly] = 55; | 
|  1214       assertEquals(55, this[ownReadOnly]); |  1194       assertEquals(55, this[ownReadOnly]); | 
|  1215       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); |  1195       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); | 
|  1216       assertEquals(55, descr.value); |  1196       assertEquals(55, descr.value); | 
|  1217       assertTrue(descr.configurable); |  1197       assertTrue(descr.configurable); | 
|  1218       assertFalse(descr.enumerable); |  1198       assertFalse(descr.enumerable); | 
|  1219       assertFalse(descr.writable); |  1199       assertFalse(descr.writable); | 
|  1220       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); |  1200       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); | 
|  1221  |  1201  | 
|  1222       assertEquals(15, this[ownReadonlyAccessor]); |  1202       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1223       super[ownReadonlyAccessor] = 25; |  1203       assertThrows(() => {super[ownReadonlyAccessor] = 25}, TypeError); | 
|  1224       assertEquals(25, this[ownReadonlyAccessor]); |  1204       assertSame(undefined, super[ownReadonlyAccessor]); | 
|  1225       var descr = Object.getOwnPropertyDescriptor(this, ownReadonlyAccessor); |  1205       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1226       assertEquals(25, descr.value); |  | 
|  1227       assertTrue(descr.configurable); |  | 
|  1228       assertFalse(descr.enumerable); |  | 
|  1229       assertTrue(descr.writable); |  | 
|  1230       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); |  1206       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); | 
|  1231  |  1207  | 
|  1232       super[ownSetter] = 35; |  1208       assertThrows(() => {super[ownSetter] = 35}, TypeError); | 
|  1233       assertEquals(35, this[ownSetter]); |  1209       assertSame(undefined, super[ownSetter]); | 
|  1234       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); |  1210       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); | 
|  1235       assertEquals(35, descr.value); |  1211       assertTrue('set' in descr); | 
|  1236       assertTrue(descr.configurable); |  | 
|  1237       assertFalse(descr.enumerable); |  | 
|  1238       assertTrue(descr.writable); |  | 
|  1239       assertFalse(Base.prototype.hasOwnProperty(ownSetter)); |  1212       assertFalse(Base.prototype.hasOwnProperty(ownSetter)); | 
|  1240     }, |  1213     }, | 
|  1241   }; |  1214   }; | 
|  1242  |  1215  | 
|  1243   var d = new Derived(); |  1216   var d = new Derived(); | 
|  1244   Object.defineProperty(d, ownReadOnly, { |  1217   Object.defineProperty(d, ownReadOnly, { | 
|  1245     value: 42, |  1218     value: 42, | 
|  1246     writable: false, |  1219     writable: false, | 
|  1247     configurable: true |  1220     configurable: true | 
|  1248   }); |  1221   }); | 
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1291       assertEquals(42, this[ownReadOnly]); |  1264       assertEquals(42, this[ownReadOnly]); | 
|  1292       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); |  1265       var descr = Object.getOwnPropertyDescriptor(this, ownReadOnly); | 
|  1293       assertEquals(42, descr.value); |  1266       assertEquals(42, descr.value); | 
|  1294       assertFalse(descr.configurable); |  1267       assertFalse(descr.configurable); | 
|  1295       assertFalse(descr.enumerable); |  1268       assertFalse(descr.enumerable); | 
|  1296       assertFalse(descr.writable); |  1269       assertFalse(descr.writable); | 
|  1297       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); |  1270       assertFalse(Base.prototype.hasOwnProperty(ownReadOnly)); | 
|  1298  |  1271  | 
|  1299       assertEquals(15, this[ownReadonlyAccessor]); |  1272       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1300       super[ownReadonlyAccessor] = 25; |  1273       super[ownReadonlyAccessor] = 25; | 
 |  1274       assertSame(undefined, super[ownReadonlyAccessor]); | 
|  1301       assertEquals(15, this[ownReadonlyAccessor]); |  1275       assertEquals(15, this[ownReadonlyAccessor]); | 
|  1302       var descr = Object.getOwnPropertyDescriptor(this, ownReadonlyAccessor); |  1276       var descr = Object.getOwnPropertyDescriptor(this, ownReadonlyAccessor); | 
|  1303       assertFalse(descr.configurable); |  1277       assertFalse(descr.configurable); | 
|  1304       assertFalse(descr.enumerable); |  1278       assertFalse(descr.enumerable); | 
|  1305       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); |  1279       assertFalse(Base.prototype.hasOwnProperty(ownReadonlyAccessor)); | 
|  1306  |  1280  | 
|  1307       super[ownSetter] = 35; |  1281       super[ownSetter] = 35; | 
|  1308       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); |  1282       var descr = Object.getOwnPropertyDescriptor(this, ownSetter); | 
|  1309       assertFalse(descr.configurable); |  1283       assertFalse(descr.configurable); | 
|  1310       assertFalse(descr.enumerable); |  1284       assertFalse(descr.enumerable); | 
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2249   } |  2223   } | 
|  2250   class Derived extends Base { |  2224   class Derived extends Base { | 
|  2251     constructor(x) { |  2225     constructor(x) { | 
|  2252       let r = (() => super(...[x]))(); |  2226       let r = (() => super(...[x]))(); | 
|  2253       assertEquals(this, r); |  2227       assertEquals(this, r); | 
|  2254     } |  2228     } | 
|  2255   } |  2229   } | 
|  2256   let d = new Derived(42); |  2230   let d = new Derived(42); | 
|  2257   assertSame(42, d.x); |  2231   assertSame(42, d.x); | 
|  2258 })(); |  2232 })(); | 
| OLD | NEW |