From 667b9a409bab37061a77910e72010b1d1e0f5bd8 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Mon, 16 Sep 2019 13:54:01 -0700 Subject: [PATCH] deps: V8: cherry-pick 35c6d4d Original commit message: Make code generator python3.7 compatible (async keyword). Change-Id: Ifcd8b8cb1de60a007c7bbd4564d7869e83cb7109 Fixes: https://github.com/nodejs/node/issues/29548 Refs: - https://github.com/nodejs/node/issues/29548#issuecomment-531717985 - https://github.com/nodejs/node/pull/29520 - https://github.com/nodejs/node/pull/29340 - https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1781351 - https://chromium.googlesource.com/deps/inspector_protocol/+/35c6d4d0d80b42d81bd00bcb1eb2b1093c80ed0a Backport-PR-URL: https://github.com/nodejs/node/pull/30109 PR-URL: https://github.com/nodejs/node/pull/29585 Refs: https://github.com/nodejs/node/pull/29520 Reviewed-By: Christian Clauss Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Ben Noordhuis Reviewed-By: Ruben Bridgewater --- common.gypi | 2 +- deps/v8/third_party/inspector_protocol/code_generator.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index c1445595209fc7..517a986acc4b7f 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,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.10', + 'v8_embedder_string': '-node.11', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/third_party/inspector_protocol/code_generator.py b/deps/v8/third_party/inspector_protocol/code_generator.py index 7c72cc70e4fbeb..5cf5a308c5e6a0 100755 --- a/deps/v8/third_party/inspector_protocol/code_generator.py +++ b/deps/v8/third_party/inspector_protocol/code_generator.py @@ -43,6 +43,9 @@ def json_object_hook(object_dict): items = [(k, os.path.join(output_base, v) if k == "output" else v) for (k, v) in items] keys, values = list(zip(*items)) + # 'async' is a keyword since Python 3.7. + # Avoid namedtuple(rename=True) for compatibility with Python 2.X. + keys = tuple('async_' if k == 'async' else k for k in keys) return collections.namedtuple('X', keys)(*values) return json.loads(data, object_hook=json_object_hook) @@ -555,7 +558,7 @@ def is_async_command(self, domain, command): if not self.config.protocol.options: return False return self.check_options(self.config.protocol.options, domain, command, - "async", None, False) + "async_", None, False) def is_exported(self, domain, name): if not self.config.protocol.options: