4189da7b0e
Fixes a bytecode mismatch for arrow functions with default arguments between eager and lazy compilation. In the former case, parameters with default values are marked as assigned even if the value never changes within the function because the parser does not know it's an arrow-function at the point it sees the assignment. So this changes ArrowHeadParsingScope::ValidateAndCreateScope to clear the is_assigned flag on its parameter VariableProxies before it binds them. Bug: chromium:988304, v8:8510 Change-Id: I68bf205c73471386181e5fdcec6c8c3b2e527c8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1724384 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#62962}
15 lines
335 B
JavaScript
15 lines
335 B
JavaScript
// Copyright 2019 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: --enable-lazy-source-positions --stress-lazy-source-positions
|
|
|
|
(function() {
|
|
((x = 1) => {
|
|
function foo() {
|
|
x;
|
|
}
|
|
return x;
|
|
})();
|
|
})();
|