OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions |
6 // are met: | 6 // are met: |
7 // 1. Redistributions of source code must retain the above copyright | 7 // 1. Redistributions of source code must retain the above copyright |
8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
9 // 2. Redistributions in binary form must reproduce the above copyright | 9 // 2. Redistributions in binary form must reproduce the above copyright |
10 // notice, this list of conditions and the following disclaimer in the | 10 // notice, this list of conditions and the following disclaimer in the |
11 // documentation and/or other materials provided with the distribution. | 11 // documentation and/or other materials provided with the distribution. |
12 // | 12 // |
13 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN
Y | 13 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN
Y |
14 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 14 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
16 // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN
Y | 16 // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN
Y |
17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O
N | 19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O
N |
20 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 20 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 | 23 |
24 // Flags: --harmony-sloppy | |
25 | |
26 description('Tests for the descriptors of the properties implicitly defined by E
S6 class syntax'); | 24 description('Tests for the descriptors of the properties implicitly defined by E
S6 class syntax'); |
27 | 25 |
28 function descriptor(object, propertyName) { | 26 function descriptor(object, propertyName) { |
29 return Object.getOwnPropertyDescriptor(object, propertyName); | 27 return Object.getOwnPropertyDescriptor(object, propertyName); |
30 } | 28 } |
31 | 29 |
32 function enumeratedProperties(object) { | 30 function enumeratedProperties(object) { |
33 var properties = []; | 31 var properties = []; |
34 for (var propertyName in object) | 32 for (var propertyName in object) |
35 properties.push(propertyName); | 33 properties.push(propertyName); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 shouldBeTrue('class A { }; descriptor(A.prototype, "constructor").writable'); | 80 shouldBeTrue('class A { }; descriptor(A.prototype, "constructor").writable'); |
83 shouldBe('class A { }; A.prototype.constructor = 3; A.prototype.constructor', '3
'); | 81 shouldBe('class A { }; A.prototype.constructor = 3; A.prototype.constructor', '3
'); |
84 shouldBeTrue('class A { }; x = {}; A.prototype.constructor = function () { retur
n x; }; (new A) instanceof A'); | 82 shouldBeTrue('class A { }; x = {}; A.prototype.constructor = function () { retur
n x; }; (new A) instanceof A'); |
85 shouldBeFalse('class A { }; descriptor(A.prototype, "constructor").enumerable'); | 83 shouldBeFalse('class A { }; descriptor(A.prototype, "constructor").enumerable'); |
86 shouldBeFalse('class A { }; enumeratedProperties(A.prototype).includes("construc
tor")'); | 84 shouldBeFalse('class A { }; enumeratedProperties(A.prototype).includes("construc
tor")'); |
87 shouldBeFalse('class A { }; enumeratedProperties(new A).includes("constructor")'
); | 85 shouldBeFalse('class A { }; enumeratedProperties(new A).includes("constructor")'
); |
88 shouldBeTrue('class A { }; descriptor(A.prototype, "constructor").configurable')
; | 86 shouldBeTrue('class A { }; descriptor(A.prototype, "constructor").configurable')
; |
89 shouldBe('class A { }; Object.defineProperty(A.prototype, "constructor", {value:
"bar"}); A.prototype.constructor', '"bar"'); | 87 shouldBe('class A { }; Object.defineProperty(A.prototype, "constructor", {value:
"bar"}); A.prototype.constructor', '"bar"'); |
90 | 88 |
91 var successfullyParsed = true; | 89 var successfullyParsed = true; |
OLD | NEW |