fa844bdbee
If the parameter list contains class declarations we should use the block scope corresponding to the class when rewriting the initializers. Bug: chromium:917988 Change-Id: I7fcd44a264b7c0113cbd821b759e0bee6c9345a0 Reviewed-on: https://chromium-review.googlesource.com/c/1392240 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#58515}
32 lines
790 B
JavaScript
32 lines
790 B
JavaScript
// 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.
|
|
|
|
// Tests if class declarations in parameter list are correctly handled.
|
|
function v_2(
|
|
v_3 = class v_4 {
|
|
get [[] = ';']() { }
|
|
}
|
|
) { }
|
|
v_2();
|
|
|
|
// Test object inside a class in a parameter list
|
|
(function f(
|
|
v_3 = class v_4 {
|
|
get [{} = ';']() { }
|
|
}
|
|
) { })();
|
|
|
|
// Test destructuring of class in parameters
|
|
(function f( {p, q} = class C { get [[] = ';']() {} } ) {})();
|
|
|
|
// Test array destructuring of class in parameters
|
|
class C {};
|
|
C[Symbol.iterator] = function() {
|
|
return {
|
|
next: function() { return { done: true }; },
|
|
_first: true
|
|
};
|
|
};
|
|
(function f1([p, q] = class D extends C { get [[]]() {} }) { })();
|