From 894419c1f4bf8e3fe9f54b2b057e2a6fcd2ae7d2 Mon Sep 17 00:00:00 2001 From: Brian 'bdougie' Douglas Date: Wed, 14 Oct 2020 14:55:09 -0700 Subject: [PATCH] deps: V8: backport 4263f8a5e8e0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: parser: better error message for await+tla Bug: v8:9344, v8:6513 Change-Id: I1854e483515e7da99192367b6764a0ec7c8b41d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411687 Reviewed-by: Marja Hölttä Commit-Queue: Gus Caplan Cr-Commit-Position: refs/heads/master@{#70099} Refs: https://github.com/v8/v8/commit/4263f8a5e8e04a766aeb7cde0081da3ac6c12a9e PR-URL: https://github.com/nodejs/node/pull/35650 Reviewed-By: Rich Trott Reviewed-By: Myles Borins --- common.gypi | 2 +- deps/v8/src/common/message-template.h | 3 +++ deps/v8/src/parsing/parser-base.h | 4 +++- .../PrivateAccessorAccess.golden | 8 ++++---- .../PrivateMethodAccess.golden | 4 ++-- .../StaticPrivateMethodAccess.golden | 20 +++++++++---------- 6 files changed, 23 insertions(+), 18 deletions(-) diff --git a/common.gypi b/common.gypi index f8440fef992252..33b1325eb513ea 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.15', + 'v8_embedder_string': '-node.16', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/common/message-template.h b/deps/v8/src/common/message-template.h index 675c9cbe107532..c4edee49212489 100644 --- a/deps/v8/src/common/message-template.h +++ b/deps/v8/src/common/message-template.h @@ -33,6 +33,9 @@ namespace internal { "Derived ArrayBuffer constructor created a buffer which was too small") \ T(ArrayBufferSpeciesThis, \ "ArrayBuffer subclass returned this from species constructor") \ + T(AwaitNotInAsyncContext, \ + "await is only valid in async functions and the top level bodies of " \ + "modules") \ T(AwaitNotInAsyncFunction, "await is only valid in async function") \ T(AtomicsWaitNotAllowed, "Atomics.wait cannot be called in this context") \ T(BadSortComparisonFunction, \ diff --git a/deps/v8/src/parsing/parser-base.h b/deps/v8/src/parsing/parser-base.h index 754f9d72a0ad7c..50902f67d6e6b9 100644 --- a/deps/v8/src/parsing/parser-base.h +++ b/deps/v8/src/parsing/parser-base.h @@ -909,7 +909,9 @@ class ParserBase { if (scanner()->current_token() == Token::AWAIT && !is_async_function()) { ReportMessageAt(scanner()->location(), - MessageTemplate::kAwaitNotInAsyncFunction); + flags().allow_harmony_top_level_await() + ? MessageTemplate::kAwaitNotInAsyncContext + : MessageTemplate::kAwaitNotInAsyncFunction); return; } diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden index da6b0a2b26365d..78b08a41f89aec 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden @@ -84,7 +84,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 48 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 53 S> */ B(Wide), B(LdaSmi), I16(266), + /* 53 S> */ B(Wide), B(LdaSmi), I16(267), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), @@ -115,7 +115,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 41 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 46 S> */ B(Wide), B(LdaSmi), I16(265), + /* 46 S> */ B(Wide), B(LdaSmi), I16(266), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), @@ -146,7 +146,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 48 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 53 S> */ B(Wide), B(LdaSmi), I16(266), + /* 53 S> */ B(Wide), B(LdaSmi), I16(267), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), @@ -177,7 +177,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 41 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 46 S> */ B(Wide), B(LdaSmi), I16(265), + /* 46 S> */ B(Wide), B(LdaSmi), I16(266), B(Star), R(4), B(LdaConstant), U8(0), B(Star), R(5), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden index 9c278a2f54168f..8413da93a87269 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden @@ -57,7 +57,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 44 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 49 S> */ B(Wide), B(LdaSmi), I16(264), + /* 49 S> */ B(Wide), B(LdaSmi), I16(265), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), @@ -89,7 +89,7 @@ bytecodes: [ B(Mov), R(this), R(0), B(Mov), R(context), R(2), /* 44 E> */ B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(3), - /* 49 S> */ B(Wide), B(LdaSmi), I16(264), + /* 49 S> */ B(Wide), B(LdaSmi), I16(265), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticPrivateMethodAccess.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticPrivateMethodAccess.golden index 5ce6e397b7168a..6d5bb4a58f89ff 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticPrivateMethodAccess.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticPrivateMethodAccess.golden @@ -25,7 +25,7 @@ bytecodes: [ B(TestReferenceEqual), R(this), B(Mov), R(this), R(1), B(JumpIfTrue), U8(18), - B(Wide), B(LdaSmi), I16(262), + B(Wide), B(LdaSmi), I16(263), B(Star), R(2), B(LdaConstant), U8(0), B(Star), R(3), @@ -56,7 +56,7 @@ frame size: 2 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 56 S> */ B(Wide), B(LdaSmi), I16(264), + /* 56 S> */ B(Wide), B(LdaSmi), I16(265), B(Star), R(0), B(LdaConstant), U8(0), B(Star), R(1), @@ -83,7 +83,7 @@ frame size: 2 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 56 S> */ B(Wide), B(LdaSmi), I16(264), + /* 56 S> */ B(Wide), B(LdaSmi), I16(265), B(Star), R(0), B(LdaConstant), U8(0), B(Star), R(1), @@ -122,7 +122,7 @@ bytecodes: [ /* 94 E> */ B(TestReferenceEqual), R(this), B(Mov), R(this), R(0), B(JumpIfTrue), U8(18), - B(Wide), B(LdaSmi), I16(262), + B(Wide), B(LdaSmi), I16(263), B(Star), R(2), B(LdaConstant), U8(0), B(Star), R(3), @@ -144,7 +144,7 @@ bytecodes: [ /* 109 E> */ B(TestReferenceEqual), R(this), B(Mov), R(this), R(1), B(JumpIfTrue), U8(18), - B(Wide), B(LdaSmi), I16(263), + B(Wide), B(LdaSmi), I16(264), B(Star), R(3), B(LdaConstant), U8(0), B(Star), R(4), @@ -159,7 +159,7 @@ bytecodes: [ /* 133 E> */ B(TestReferenceEqual), R(this), B(Mov), R(this), R(0), B(JumpIfTrue), U8(18), - B(Wide), B(LdaSmi), I16(262), + B(Wide), B(LdaSmi), I16(263), B(Star), R(2), B(LdaConstant), U8(0), B(Star), R(3), @@ -189,7 +189,7 @@ frame size: 2 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 60 S> */ B(Wide), B(LdaSmi), I16(266), + /* 60 S> */ B(Wide), B(LdaSmi), I16(267), B(Star), R(0), B(LdaConstant), U8(0), B(Star), R(1), @@ -215,7 +215,7 @@ frame size: 2 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 53 S> */ B(Wide), B(LdaSmi), I16(265), + /* 53 S> */ B(Wide), B(LdaSmi), I16(266), B(Star), R(0), B(LdaConstant), U8(0), B(Star), R(1), @@ -241,7 +241,7 @@ frame size: 2 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 60 S> */ B(Wide), B(LdaSmi), I16(266), + /* 60 S> */ B(Wide), B(LdaSmi), I16(267), B(Star), R(0), B(LdaConstant), U8(0), B(Star), R(1), @@ -267,7 +267,7 @@ frame size: 3 parameter count: 1 bytecode array length: 16 bytecodes: [ - /* 46 S> */ B(Wide), B(LdaSmi), I16(265), + /* 46 S> */ B(Wide), B(LdaSmi), I16(266), B(Star), R(1), B(LdaConstant), U8(0), B(Star), R(2),