[error] Improve error message for array spread
... on non-iterable object. In CallPrinter::VisitAssignment, when found_ is true, we could print node->target to show the error node value, avoid printing twice for the assignment. Bug: v8:10854 Change-Id: I5f295f46b5639b715f762935e675598d1d780f98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586763 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: 王澳 <wangao.james@bytedance.com> Cr-Commit-Position: refs/heads/main@{#79997}
This commit is contained in:
parent
02d8c126b7
commit
f2c4c598fb
@ -343,6 +343,10 @@ void CallPrinter::VisitAssignment(Assignment* node) {
|
||||
}
|
||||
}
|
||||
if (!was_found) {
|
||||
if (found_) {
|
||||
Find(node->target(), true);
|
||||
return;
|
||||
}
|
||||
Find(node->target());
|
||||
if (node->target()->IsArrayLiteral()) {
|
||||
// Special case the visit for destructuring array assignment.
|
||||
|
5
test/message/fail/array-spread-non-iterable-object.js
Normal file
5
test/message/fail/array-spread-non-iterable-object.js
Normal file
@ -0,0 +1,5 @@
|
||||
// Copyright 2022 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.
|
||||
|
||||
[...(a={})]
|
5
test/message/fail/array-spread-non-iterable-object.out
Normal file
5
test/message/fail/array-spread-non-iterable-object.out
Normal file
@ -0,0 +1,5 @@
|
||||
*%(basename)s:5: TypeError: a is not iterable
|
||||
[...(a={})]
|
||||
^
|
||||
TypeError: a is not iterable
|
||||
at *%(basename)s:5:7
|
Loading…
Reference in New Issue
Block a user