OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // Flags: --harmony-destructuring-assignment --harmony-sloppy |
| 6 // |
| 7 |
| 8 function TestBasics() { |
| 9 var a = {}, b, c, value = { a: "alpha", b: "beta", c: "gamma" }; |
| 10 assertEquals({a: a.str1} = {b: a.str2} = {c: a.str3} = {b, c} = value, value); |
| 11 assertEquals(a, {str1: "alpha", str2: "beta", str3: "gamma"}); |
| 12 assertEquals(b, "beta"); |
| 13 assertEquals(c, "gamma"); |
| 14 |
| 15 assertEquals([a.str1, ,...c] = [, b] = "☕✌♥♫♪★", "☕✌♥♫♪★"); |
| 16 assertEquals(a.str1, "☕"); |
| 17 assertEquals(b, "✌"); |
| 18 assertEquals(c, ["♥", "♫", "♪", "★"]); |
| 19 |
| 20 // Super-properties used |
| 21 var bs = {}; |
| 22 class SuperClass { |
| 23 get verbose() { return bs.verbose; } |
| 24 set verbose(v) { bs.verboseSet = true; bs.verbose = v; } |
| 25 get warningsAsErrors() { return bs.warningsAsErrors; } |
| 26 set warningsAsErrors(v) { |
| 27 bs.warningsAsErrorsSet = true; |
| 28 bs.warningsAsErrors = v; |
| 29 } |
| 30 get entries() { return bs.entries; } |
| 31 set entries(v) { bs.entriesSet = true; bs.entries = v; } |
| 32 } |
| 33 class ChildClass extends SuperClass { |
| 34 constructor(O) { |
| 35 super(); |
| 36 ({ |
| 37 verbose: super.verbose = false, |
| 38 warningsAsErrors: super.warningsAsErrors = false, |
| 39 entries: [...super.entries] |
| 40 } = O || { entries: [] }); |
| 41 } |
| 42 }; |
| 43 var childClass = new ChildClass({ |
| 44 warningsAsErrors: true, |
| 45 entries: [1, 2, 3] |
| 46 }); |
| 47 assertEquals(childClass.verbose, false); |
| 48 assertEquals(childClass.warningsAsErrors, true); |
| 49 assertEquals(childClass.entries, [1, 2, 3]); |
| 50 assertEquals({ verboseSet: true, verbose: false, |
| 51 warningsAsErrorsSet: true, warningsAsErrors: true, |
| 52 entriesSet: true, entries: [1, 2, 3] }, bs); |
| 53 } |
| 54 TestBasics(); |
OLD | NEW |