From 8e48572bd41554f9c7123928349c9a0a2b68f233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 31 Jul 2020 13:34:47 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20ensure=20[=E2=80=A6map.keys]=20is=20corr?= =?UTF-8?q?ectly=20transformed=20in=20loose=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/babel-plugin-transform-block-scoping/src/index.js | 2 +- packages/babel-standalone/test/babel.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/babel-plugin-transform-block-scoping/src/index.js b/packages/babel-plugin-transform-block-scoping/src/index.js index c6a7fe26f48e..3a9576a525fe 100644 --- a/packages/babel-plugin-transform-block-scoping/src/index.js +++ b/packages/babel-plugin-transform-block-scoping/src/index.js @@ -518,7 +518,7 @@ class BlockScoping { // remap loop heads with colliding variables if (this.loop) { // nb: clone outsideRefs keys since the map is modified within the loop - for (const name of [...outsideRefs.keys()]) { + for (const name of Array.from(outsideRefs.keys())) { const id = outsideRefs.get(name); if ( diff --git a/packages/babel-standalone/test/babel.js b/packages/babel-standalone/test/babel.js index 44b08166abcd..c6a450328491 100644 --- a/packages/babel-standalone/test/babel.js +++ b/packages/babel-standalone/test/babel.js @@ -210,6 +210,13 @@ }), ).not.toThrow(); }); + it("#11897 - [...map.keys()] in Babel source should be transformed correctly", () => { + expect(() => + Babel.transform("for (let el of []) { s => el }", { + plugins: ["transform-block-scoping"], + }), + ).not.toThrow(); + }); }); }, );