From ed15443dba6e3f79ec8ce7db2b32391b4eba8c8b Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Sat, 29 Apr 2017 18:53:19 +0200 Subject: [PATCH] fix: use undefined instead of null --- .../src/index.js | 13 +++++++++---- .../test/fixtures/general/member-access/expected.js | 2 +- .../general/nested-member-access/expected.js | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/babel-plugin-transform-optional-chaining/src/index.js b/packages/babel-plugin-transform-optional-chaining/src/index.js index aca9d8e6c3..204ade516e 100644 --- a/packages/babel-plugin-transform-optional-chaining/src/index.js +++ b/packages/babel-plugin-transform-optional-chaining/src/index.js @@ -1,6 +1,6 @@ export default function ({ types: t }) { - function createCondition(ref, access, nextProperty) { + function createCondition(ref, access, nextProperty, bailout) { return t.conditionalExpression( createCheckAgainstNull( @@ -8,7 +8,7 @@ export default function ({ types: t }) { ), t.memberExpression(ref, nextProperty), - t.NullLiteral() + bailout, ); } @@ -36,9 +36,14 @@ export default function ({ types: t }) { path.scope.push({ id }); } - path.replaceWith( - createCondition(state.optionalTemp, object, property) + const remplacement = createCondition( + state.optionalTemp, + object, + property, + t.identifier("undefined") ); + + path.replaceWith(remplacement); }, }, }; diff --git a/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/expected.js b/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/expected.js index beb5eddc75..c8e1bdce5e 100644 --- a/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/expected.js +++ b/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/expected.js @@ -1,3 +1,3 @@ var _temp; -(_temp = foo) != null ? _temp.bar : null; +(_temp = foo) != null ? _temp.bar : undefined; \ No newline at end of file diff --git a/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/nested-member-access/expected.js b/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/nested-member-access/expected.js index 59d23923f8..3e328660a1 100644 --- a/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/nested-member-access/expected.js +++ b/packages/babel-plugin-transform-optional-chaining/test/fixtures/general/nested-member-access/expected.js @@ -1,3 +1,3 @@ var _temp; -((_temp = ((_temp = a) != null ? _temp.b : null).c) != null ? _temp.d : null).e; +((_temp = ((_temp = a) != null ? _temp.b : undefined).c) != null ? _temp.d : undefined).e; \ No newline at end of file