Adjust cloning of nodes in import/export-specifiers and obj-destructuring (#24)

The cloning caused comments that where added to the original node to be persisted into
the cloned node.
Espree/Acorn does not have any cloning, that's why it is working there.
This change omits comments when cloning, as removing the cloning
causes tests in babel to fail.
This commit is contained in:
Daniel Tschinder
2016-06-21 15:55:15 +02:00
committed by Henry Zhu
parent 92d45c3f6c
commit f11a82c96c
6 changed files with 361 additions and 2 deletions

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env babel-node
import {spawn} from 'foobar';

View File

@@ -0,0 +1,154 @@
{
"type": "File",
"start": 0,
"end": 56,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 29
}
},
"program": {
"type": "Program",
"start": 0,
"end": 56,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 29
}
},
"sourceType": "module",
"body": [
{
"type": "ImportDeclaration",
"start": 27,
"end": 56,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 29
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 35,
"end": 40,
"loc": {
"start": {
"line": 3,
"column": 8
},
"end": {
"line": 3,
"column": 13
}
},
"imported": {
"type": "Identifier",
"start": 35,
"end": 40,
"loc": {
"start": {
"line": 3,
"column": 8
},
"end": {
"line": 3,
"column": 13
}
},
"name": "spawn"
},
"local": {
"type": "Identifier",
"start": 35,
"end": 40,
"loc": {
"start": {
"line": 3,
"column": 8
},
"end": {
"line": 3,
"column": 13
}
},
"name": "spawn"
}
}
],
"source": {
"type": "StringLiteral",
"start": 47,
"end": 55,
"loc": {
"start": {
"line": 3,
"column": 20
},
"end": {
"line": 3,
"column": 28
}
},
"extra": {
"rawValue": "foobar",
"raw": "'foobar'"
},
"value": "foobar"
},
"leadingComments": [
{
"type": "CommentLine",
"value": "/usr/bin/env babel-node",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
}
}
]
}
],
"directives": []
},
"comments": [
{
"type": "CommentLine",
"value": "/usr/bin/env babel-node",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
}
}
]
}

View File

@@ -0,0 +1,3 @@
{
"sourceType": "module"
}

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env babel-node
var { spawn } = x;

View File

@@ -0,0 +1,189 @@
{
"type": "File",
"start": 0,
"end": 45,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 18
}
},
"program": {
"type": "Program",
"start": 0,
"end": 45,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 18
}
},
"sourceType": "script",
"body": [
{
"type": "VariableDeclaration",
"start": 27,
"end": 45,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 18
}
},
"declarations": [
{
"type": "VariableDeclarator",
"start": 31,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 4
},
"end": {
"line": 3,
"column": 17
}
},
"id": {
"type": "ObjectPattern",
"start": 31,
"end": 40,
"loc": {
"start": {
"line": 3,
"column": 4
},
"end": {
"line": 3,
"column": 13
}
},
"properties": [
{
"type": "ObjectProperty",
"start": 33,
"end": 38,
"loc": {
"start": {
"line": 3,
"column": 6
},
"end": {
"line": 3,
"column": 11
}
},
"method": false,
"shorthand": true,
"computed": false,
"key": {
"type": "Identifier",
"start": 33,
"end": 38,
"loc": {
"start": {
"line": 3,
"column": 6
},
"end": {
"line": 3,
"column": 11
}
},
"name": "spawn"
},
"value": {
"type": "Identifier",
"start": 33,
"end": 38,
"loc": {
"start": {
"line": 3,
"column": 6
},
"end": {
"line": 3,
"column": 11
}
},
"name": "spawn"
},
"extra": {
"shorthand": true
}
}
]
},
"init": {
"type": "Identifier",
"start": 43,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 16
},
"end": {
"line": 3,
"column": 17
}
},
"name": "x"
}
}
],
"kind": "var",
"leadingComments": [
{
"type": "CommentLine",
"value": "/usr/bin/env babel-node",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
}
}
]
}
],
"directives": []
},
"comments": [
{
"type": "CommentLine",
"value": "/usr/bin/env babel-node",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
}
}
]
}