diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js new file mode 100644 index 0000000000..1b247875fc --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js @@ -0,0 +1 @@ +a ?? b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json new file mode 100644 index 0000000000..45384c754d --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json b/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js new file mode 100644 index 0000000000..fc603903ff --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js @@ -0,0 +1,3 @@ +a + ?? b + ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json new file mode 100644 index 0000000000..99f325b056 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 6 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 3, + "column": 5 + }, + "end": { + "line": 3, + "column": 6 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json b/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js new file mode 100644 index 0000000000..4809548d80 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js @@ -0,0 +1 @@ +a |> b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json new file mode 100644 index 0000000000..9ac8a339b0 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "|>", + "right": { + "type": "BinaryExpression", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json new file mode 100644 index 0000000000..37fbfac05f --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator", "pipelineOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js new file mode 100644 index 0000000000..2b0c8c8ff8 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js @@ -0,0 +1 @@ +a && b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json new file mode 100644 index 0000000000..57c4decc9f --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file