6feae531f3
This is a reland of c342ba8247
Original change's description:
> Set .name of anonymous functions on the RHS of logical assignment.
>
> https://github.com/tc39/proposal-logical-assignment/pull/24 reached
> consensus in June TC39.
>
> Drive-by refactoring of testing for logical assignment ops using
> IsInRange.
>
> Bug: v8:10579
> Change-Id: I5a203ba552a905cd28f75c5d223998431a1966ce
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2225809
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68101}
Bug: v8:10579
Change-Id: I321cf0e29515a146844abc05250e9b50ad651caf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2227255
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68161}
28 lines
436 B
JavaScript
28 lines
436 B
JavaScript
// Copyright 2020 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-logical-assignment
|
|
|
|
{
|
|
let x = undefined;
|
|
x ??= function() {};
|
|
|
|
assertEquals(x.name, "x");
|
|
}
|
|
|
|
|
|
{
|
|
let y = false;
|
|
y ||= function() {};
|
|
|
|
assertEquals(y.name, "y");
|
|
}
|
|
|
|
{
|
|
let z = true;
|
|
z &&= function() {};
|
|
|
|
assertEquals(z.name, "z");
|
|
}
|