// Copyright 2018 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Flags: --harmony-public-fields const a = [2]; const b = [4]; let log; class C { constructor(...args) { log = args; } } class D extends C { field = 42; constructor() { super(1) }; } assertEquals(42, (new D).field); assertEquals([1], log); class E extends C { field = 42; constructor() { super(...a) }; } assertEquals(42, (new E).field); assertEquals([2], log); class F extends C { field = 42; constructor() { super(1, ...a) }; } assertEquals(42, (new F).field); assertEquals([1, 2], log); class G extends C { field = 42; constructor() { super(1, ...a, 3) }; } assertEquals(42, (new G).field); assertEquals([1, 2, 3], log); class H extends C { field = 42; constructor() { super(1, ...a, 3, ...b) }; } assertEquals(42, (new H).field); assertEquals([1, 2, 3, 4], log); class I extends C { field = 42; constructor() { super(1, ...a, 3, ...b, 5) }; } assertEquals(42, (new I).field); assertEquals([1, 2, 3, 4, 5], log);