diff --git a/packages/babel-standalone/src/preset-stage-1.ts b/packages/babel-standalone/src/preset-stage-1.ts index 67a3ef331819..9b786c2e4927 100644 --- a/packages/babel-standalone/src/preset-stage-1.ts +++ b/packages/babel-standalone/src/preset-stage-1.ts @@ -33,6 +33,7 @@ export default (_: any, opts: any = {}) => { babelPlugins.syntaxDecimal, babelPlugins.proposalExportDefaultFrom, babelPlugins.proposalDoExpressions, + babelPlugins.optionalChainingAssign ], }; }; diff --git a/packages/babel-standalone/test/preset-stage-1.test.js b/packages/babel-standalone/test/preset-stage-1.test.js index fb098d587d49..71588749e183 100644 --- a/packages/babel-standalone/test/preset-stage-1.test.js +++ b/packages/babel-standalone/test/preset-stage-1.test.js @@ -78,4 +78,10 @@ describe("stage-1 preset", () => { }).code; expect(output).toMatchInlineSnapshot(`"Tuple(Record({}));"`); }); + it("should support optional chaining assignment", () => { + const output = Babel.transform("expr1?.prop = val", { + presets: [["stage-1", { decoratorsVersion: "2021-12" }]], + }).code; + expect(output).toMatchInlineSnapshot(`"expr1 == null ? undefined : expr1.prop = val;"`); + }); });