diff --git a/Makefile b/Makefile index 5f5d14af8f8d..b93d50e06eea 100644 --- a/Makefile +++ b/Makefile @@ -202,6 +202,7 @@ new-version: @echo "!!!!!! Update classStaticPrivateFieldDestructureSet !!!!!!" @echo "!!!!!! helper version in !!!!!!" @echo "!!!!!! packages/babel-helpers/src/helpers.js !!!!!!" + @echo "!!!!!! packages/babel-helper-create-class-features-plugin/src/fields.js" @echo "!!!!!! !!!!!!" @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" @echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" diff --git a/packages/babel-helper-create-class-features-plugin/src/fields.js b/packages/babel-helper-create-class-features-plugin/src/fields.js index 5a09308b4ae5..f48b6ba74a47 100644 --- a/packages/babel-helper-create-class-features-plugin/src/fields.js +++ b/packages/babel-helper-create-class-features-plugin/src/fields.js @@ -315,11 +315,22 @@ const privateNameHandlerSpec = { const { name } = member.node.property.id; const { id, static: isStatic } = privateNamesMap.get(name); if (isStatic) { + try { + // classStaticPrivateFieldDestructureSet was introduced in 7.99.0 + // eslint-disable-next-line no-var + var helper = file.addHelper("classStaticPrivateFieldDestructureSet"); + } catch { + throw new Error( + "Babel can not transpile `[C.#p] = [0]` with @babel/helper < 7.99.0, \n" + + "please update @babel/helper to the latest version", + ); + } return t.memberExpression( - t.callExpression( - file.addHelper("classStaticPrivateFieldDestructureSet"), - [this.receiver(member), t.cloneNode(classRef), t.cloneNode(id)], - ), + t.callExpression(helper, [ + this.receiver(member), + t.cloneNode(classRef), + t.cloneNode(id), + ]), t.identifier("value"), ); }