diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json
index 6099a368aa..e398f8484e 100644
--- a/packages/babel-core/package.json
+++ b/packages/babel-core/package.json
@@ -34,7 +34,7 @@
"babel-register": "7.0.0-alpha.2",
"babel-traverse": "7.0.0-alpha.1",
"babel-types": "7.0.0-alpha.1",
- "babylon": "7.0.0-beta.6",
+ "babylon": "7.0.0-beta.7",
"convert-source-map": "^1.1.0",
"debug": "^2.1.1",
"json5": "^0.5.0",
diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json
index eb9900f150..940a24ceb1 100644
--- a/packages/babel-generator/package.json
+++ b/packages/babel-generator/package.json
@@ -21,6 +21,6 @@
},
"devDependencies": {
"babel-helper-fixtures": "7.0.0-alpha.1",
- "babylon": "7.0.0-beta.4"
+ "babylon": "7.0.0-beta.7"
}
}
diff --git a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js
index 455ed642b5..205a96f269 100644
--- a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js
+++ b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js
@@ -10,3 +10,11 @@ html``;
asdf
awer
erqer`;
+
+tag`\unicode and \u{55}`;
+tag`\01`;
+tag`\xg${0}right`;
+tag`left${0}\xg`;
+tag`left${0}\xg${1}right`;
+tag`left${0}\u000g${1}right`;
+tag`left${0}\u{-0}${1}right`;
diff --git a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js
index b1cd86e7e2..488b934be7 100644
--- a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js
+++ b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js
@@ -10,3 +10,11 @@ html``;
asdf
awer
erqer`;
+
+tag`\unicode and \u{55}`;
+tag`\01`;
+tag`\xg${0}right`;
+tag`left${0}\xg`;
+tag`left${0}\xg${1}right`;
+tag`left${0}\u000g${1}right`;
+tag`left${0}\u{-0}${1}right`;
diff --git a/packages/babel-plugin-transform-es2015-template-literals/src/index.js b/packages/babel-plugin-transform-es2015-template-literals/src/index.js
index 8743c990da..128172fdb2 100644
--- a/packages/babel-plugin-transform-es2015-template-literals/src/index.js
+++ b/packages/babel-plugin-transform-es2015-template-literals/src/index.js
@@ -18,7 +18,10 @@ export default function ({ types: t }) {
let raw = [];
for (const elem of (quasi.quasis: Array)) {
- strings.push(t.stringLiteral(elem.value.cooked));
+ const value = elem.value.cooked == null
+ ? path.scope.buildUndefinedNode()
+ : t.stringLiteral(elem.value.cooked);
+ strings.push(value);
raw.push(t.stringLiteral(elem.value.raw));
}
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/actual.js
new file mode 100644
index 0000000000..66ea5a01ea
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/actual.js
@@ -0,0 +1,13 @@
+tag`\unicode and \u{55}`;
+
+tag`\01`;
+tag`\xg${0}right`;
+tag`left${0}\xg`;
+tag`left${0}\xg${1}right`;
+tag`left${0}\u000g${1}right`;
+tag`left${0}\u{-0}${1}right`;
+
+function a() {
+ var undefined = 4;
+ tag`\01`;
+}
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/expected.js
new file mode 100644
index 0000000000..f839bd5ee3
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/expected.js
@@ -0,0 +1,23 @@
+var _templateObject = _taggedTemplateLiteralLoose([void 0], ["\\unicode and \\u{55}"]),
+ _templateObject2 = _taggedTemplateLiteralLoose([void 0], ["\\01"]),
+ _templateObject3 = _taggedTemplateLiteralLoose([void 0, "right"], ["\\xg", "right"]),
+ _templateObject4 = _taggedTemplateLiteralLoose(["left", void 0], ["left", "\\xg"]),
+ _templateObject5 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\xg", "right"]),
+ _templateObject6 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u000g", "right"]),
+ _templateObject7 = _taggedTemplateLiteralLoose(["left", void 0, "right"], ["left", "\\u{-0}", "right"]);
+
+function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }
+
+tag(_templateObject);
+
+tag(_templateObject2);
+tag(_templateObject3, 0);
+tag(_templateObject4, 0);
+tag(_templateObject5, 0, 1);
+tag(_templateObject6, 0, 1);
+tag(_templateObject7, 0, 1);
+
+function a() {
+ var undefined = 4;
+ tag(_templateObject2);
+}
\ No newline at end of file
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/options.json b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/options.json
new file mode 100644
index 0000000000..434ba0caa6
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision-loose/options.json
@@ -0,0 +1,3 @@
+{
+ "plugins": [["transform-es2015-template-literals", { "loose": true }]]
+}
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/actual.js
new file mode 100644
index 0000000000..66ea5a01ea
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/actual.js
@@ -0,0 +1,13 @@
+tag`\unicode and \u{55}`;
+
+tag`\01`;
+tag`\xg${0}right`;
+tag`left${0}\xg`;
+tag`left${0}\xg${1}right`;
+tag`left${0}\u000g${1}right`;
+tag`left${0}\u{-0}${1}right`;
+
+function a() {
+ var undefined = 4;
+ tag`\01`;
+}
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/expected.js
new file mode 100644
index 0000000000..58a8865697
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/normal/template-revision/expected.js
@@ -0,0 +1,23 @@
+var _templateObject = _taggedTemplateLiteral([void 0], ["\\unicode and \\u{55}"]),
+ _templateObject2 = _taggedTemplateLiteral([void 0], ["\\01"]),
+ _templateObject3 = _taggedTemplateLiteral([void 0, "right"], ["\\xg", "right"]),
+ _templateObject4 = _taggedTemplateLiteral(["left", void 0], ["left", "\\xg"]),
+ _templateObject5 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\xg", "right"]),
+ _templateObject6 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u000g", "right"]),
+ _templateObject7 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u{-0}", "right"]);
+
+function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
+
+tag(_templateObject);
+
+tag(_templateObject2);
+tag(_templateObject3, 0);
+tag(_templateObject4, 0);
+tag(_templateObject5, 0, 1);
+tag(_templateObject6, 0, 1);
+tag(_templateObject7, 0, 1);
+
+function a() {
+ var undefined = 4;
+ tag(_templateObject2);
+}
\ No newline at end of file
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/actual.js
new file mode 100644
index 0000000000..66ea5a01ea
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/actual.js
@@ -0,0 +1,13 @@
+tag`\unicode and \u{55}`;
+
+tag`\01`;
+tag`\xg${0}right`;
+tag`left${0}\xg`;
+tag`left${0}\xg${1}right`;
+tag`left${0}\u000g${1}right`;
+tag`left${0}\u{-0}${1}right`;
+
+function a() {
+ var undefined = 4;
+ tag`\01`;
+}
diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/expected.js
new file mode 100644
index 0000000000..58a8865697
--- /dev/null
+++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/spec/template-revision/expected.js
@@ -0,0 +1,23 @@
+var _templateObject = _taggedTemplateLiteral([void 0], ["\\unicode and \\u{55}"]),
+ _templateObject2 = _taggedTemplateLiteral([void 0], ["\\01"]),
+ _templateObject3 = _taggedTemplateLiteral([void 0, "right"], ["\\xg", "right"]),
+ _templateObject4 = _taggedTemplateLiteral(["left", void 0], ["left", "\\xg"]),
+ _templateObject5 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\xg", "right"]),
+ _templateObject6 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u000g", "right"]),
+ _templateObject7 = _taggedTemplateLiteral(["left", void 0, "right"], ["left", "\\u{-0}", "right"]);
+
+function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
+
+tag(_templateObject);
+
+tag(_templateObject2);
+tag(_templateObject3, 0);
+tag(_templateObject4, 0);
+tag(_templateObject5, 0, 1);
+tag(_templateObject6, 0, 1);
+tag(_templateObject7, 0, 1);
+
+function a() {
+ var undefined = 4;
+ tag(_templateObject2);
+}
\ No newline at end of file
diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json
index 160c56cfba..80f1ac91c4 100644
--- a/packages/babel-template/package.json
+++ b/packages/babel-template/package.json
@@ -8,7 +8,7 @@
"repository": "https://github.com/babel/babel/tree/master/packages/babel-template",
"main": "lib/index.js",
"dependencies": {
- "babylon": "7.0.0-beta.6",
+ "babylon": "7.0.0-beta.7",
"babel-traverse": "7.0.0-alpha.1",
"babel-types": "7.0.0-alpha.1",
"lodash": "^4.2.0"
diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json
index 9c9b84bd14..3285eccff3 100644
--- a/packages/babel-traverse/package.json
+++ b/packages/babel-traverse/package.json
@@ -11,7 +11,7 @@
"babel-code-frame": "7.0.0-alpha.1",
"babel-messages": "7.0.0-alpha.1",
"babel-types": "7.0.0-alpha.1",
- "babylon": "7.0.0-beta.6",
+ "babylon": "7.0.0-beta.7",
"debug": "^2.2.0",
"globals": "^9.0.0",
"invariant": "^2.2.0",
diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json
index 7c7c6580b5..0f6fa110e9 100644
--- a/packages/babel-types/package.json
+++ b/packages/babel-types/package.json
@@ -13,6 +13,6 @@
"to-fast-properties": "^1.0.1"
},
"devDependencies": {
- "babylon": "7.0.0-beta.4"
+ "babylon": "7.0.0-beta.7"
}
}