Compare commits

...

8 Commits

Author SHA1 Message Date
Sebastian McKenzie
c129eba712 v3.3.3 2015-02-02 10:52:56 +11:00
Sebastian McKenzie
0e2d7fa941 remove throw expectation on undefiend this tests 2015-02-02 10:50:29 +11:00
Sebastian McKenzie
0b33a62032 fix linting errors 2015-02-02 10:48:18 +11:00
Sebastian McKenzie
6919ed2b34 add 3.3.3 changelog 2015-02-02 10:46:44 +11:00
Sebastian McKenzie
435320e3f9 selfContainify regenerator runtime when building 6to5-runtime - fixes #659 2015-02-02 10:45:26 +11:00
Sebastian McKenzie
7b846af965 3.3.2 2015-02-02 10:45:05 +11:00
Sebastian McKenzie
18b836c16a add allowPartial option to t.buildMatchMemberExpression, fix t.isReferenced on Property nodes - fixes #656 2015-02-02 10:44:56 +11:00
Sebastian McKenzie
fb360039ce remap top level this to undefined - #562 2015-02-02 10:44:17 +11:00
18 changed files with 42 additions and 21 deletions

View File

@@ -11,6 +11,13 @@
_Note: Gaps between patch versions are faulty/broken releases._
## 3.3.3
* **Bug Fix**
* Remap top level `this` to `undefined` instead of throwing an error.
* Run `selfContained` transformer over the regenerator runtime when building `6to5-runtime`.
* Fix `t.isReferenced` not properly allowing `value` nodes.
## 3.3.1
* **Bug Fix**

View File

@@ -16,6 +16,6 @@ exports.FunctionExpression = function (node, parent, scope, context) {
context.skip();
};
exports.ThisExpression = function (node, parent, scope, context, file) {
throw file.errorWithNode(node, "Top level `this` is `undefined` in strict mode", ReferenceError);
exports.ThisExpression = function () {
return t.identifier("undefined");
};

View File

@@ -257,8 +257,9 @@ t.isReferenced = function (node, parent) {
}
// yes: { [NODE]: "" }
if (t.isProperty(parent)) {
return parent.key === node && parent.computed;
// no: { NODE: "" }
if (t.isProperty(parent) && parent.key === node) {
return parent.computed;
}
// no: var NODE = init;
@@ -407,10 +408,11 @@ t.ensureBlock = function (node, key) {
* parsed nodes of `React.createClass` and `React["createClass"]`.
*
* @param {String} match Dot delimetered string
* @param {Boolean} [allowPartial] Allow a partial match
* @returns {Function}
*/
t.buildMatchMemberExpression = function (match) {
t.buildMatchMemberExpression = function (match, allowPartial) {
var parts = match.split(".");
return function (member) {
@@ -445,7 +447,11 @@ t.buildMatchMemberExpression = function (match) {
// too many parts
if (++i > parts.length) {
return false;
if (allowPartial) {
return true;
} else {
return false;
}
}
}

View File

@@ -1,7 +1,7 @@
{
"name": "6to5",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "3.3.2",
"version": "3.3.3",
"author": "Sebastian McKenzie <sebmck@gmail.com>",
"homepage": "https://6to5.org/",
"repository": "6to5/6to5",

View File

@@ -1,7 +1,7 @@
{
"name": "6to5-runtime",
"description": "6to5 selfContained runtime",
"version": "3.3.1",
"version": "3.3.2",
"repository": "6to5/6to5",
"author": "Sebastian McKenzie <sebmck@gmail.com>"
}

View File

@@ -30,6 +30,12 @@ var updatePackage = function () {
writeFile("package.json", JSON.stringify(pkg, null, 2));
};
var selfContainify = function (code) {
return transform(code, {
optional: ["selfContained"]
}).code;
};
var buildHelpers2 = function () {
var body = [];
var tree = t.program(body);
@@ -44,5 +50,5 @@ var buildHelpers2 = function () {
writeFile("helpers.js", buildHelpers2());
writeFile("core-js.js", readFile("core-js/library"));
writeFile("regenerator/index.js", readFile("regenerator-6to5/runtime-module"));
writeFile("regenerator/runtime.js", readFile("regenerator-6to5/runtime"));
writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator-6to5/runtime")));
updatePackage();

View File

@@ -1,3 +0,0 @@
{
"throws": "Top level `this` is `undefined` in strict mode"
}

View File

@@ -1,3 +0,0 @@
{
"throws": "Top level `this` is `undefined` in strict mode"
}

View File

@@ -1,3 +0,0 @@
{
"throws": "Top level `this` is `undefined` in strict mode"
}

View File

@@ -1,3 +0,0 @@
{
"throws": "Top level `this` is `undefined` in strict mode"
}

View File

@@ -0,0 +1,5 @@
"use strict";
var foo = function () {
return undefined;
};

View File

@@ -0,0 +1,3 @@
"use strict";
undefined.foo();

View File

@@ -0,0 +1,3 @@
"use strict";
var self = undefined;

View File

@@ -0,0 +1,3 @@
"use strict";
undefined;