Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b961ea3e7 | ||
|
|
35b28cf722 | ||
|
|
c5bfbf37f0 | ||
|
|
cfee68aa67 | ||
|
|
7d0dae129c | ||
|
|
f9d14fa2ed | ||
|
|
11d55e661e | ||
|
|
0544e98fb1 | ||
|
|
59d918ea67 | ||
|
|
b4232699d2 | ||
|
|
6bd67ca660 | ||
|
|
4722c0ce56 | ||
|
|
25a5caa0fc | ||
|
|
6f05466cf5 | ||
|
|
1ad9edb57c | ||
|
|
c6ae33c5a2 | ||
|
|
e0d620b1d5 | ||
|
|
5588bf56eb | ||
|
|
a0e500de6c | ||
|
|
bf8d9801ce | ||
|
|
68b99a7004 | ||
|
|
5ae4f8eec7 | ||
|
|
d9a3eadad7 | ||
|
|
b1cc5419a4 | ||
|
|
c6a7a9c401 | ||
|
|
608df54b02 | ||
|
|
2ac83ec95b | ||
|
|
e4596f638d | ||
|
|
1425af9b2a | ||
|
|
9351c6470f |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,7 +6,7 @@ test/tmp
|
||||
/templates.json
|
||||
/tests.json
|
||||
/browser.js
|
||||
/polyfill.js
|
||||
/browser-polyfill.js
|
||||
/runtime.js
|
||||
coverage
|
||||
dist
|
||||
|
||||
9
CHANGELOG.md
Normal file
9
CHANGELOG.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 1.11.14
|
||||
|
||||
* Avoid using a switch for let-scoping continue and break statements and use an if statement instead.
|
||||
* Remove excess whitespace and newlines from JSX literals.
|
||||
|
||||
# 1.11.13
|
||||
|
||||
* Update regenerator-6to5
|
||||
* Add support for most escodegen formatting options
|
||||
4
Makefile
4
Makefile
@@ -66,7 +66,7 @@ publish:
|
||||
|
||||
make build
|
||||
cp dist/6to5.min.js browser.js
|
||||
cp dist/polyfill.min.js polyfill.js
|
||||
cp dist/polyfill.min.js browser-polyfill.js
|
||||
cp dist/runtime.min.js runtime.js
|
||||
|
||||
node bin/cache-templates
|
||||
@@ -78,4 +78,4 @@ publish:
|
||||
|
||||
git push --follow-tags
|
||||
|
||||
rm -rf templates.json browser.js runtime.js polyfill.js
|
||||
rm -rf templates.json browser.js runtime.js browser-polyfill.js
|
||||
|
||||
@@ -346,8 +346,8 @@ require("6to5/polyfill");
|
||||
|
||||
### Browser
|
||||
|
||||
Available from the `polyfill.js` file within the 6to5 directory of an npm
|
||||
release.
|
||||
Available from the `browser-polyfill.js` file within the 6to5 directory of an
|
||||
npm release.
|
||||
|
||||
## Optional runtime
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ File.normaliseOptions = function (opts) {
|
||||
runtime: false
|
||||
});
|
||||
|
||||
// normalise windows path separators to unix
|
||||
opts.filename = opts.filename.replace(/\\/g, "/");
|
||||
|
||||
_.defaults(opts, {
|
||||
sourceFileName: opts.filename,
|
||||
sourceMapName: opts.filename
|
||||
@@ -143,7 +146,7 @@ File.prototype.generate = function () {
|
||||
|
||||
if (this.shebang) {
|
||||
// add back shebang
|
||||
result.code = this.shebang + result.code;
|
||||
result.code = this.shebang + "\n" + result.code;
|
||||
}
|
||||
|
||||
if (opts.sourceMap === "inline") {
|
||||
|
||||
@@ -16,29 +16,38 @@ var _ = require("lodash");
|
||||
function CodeGenerator(ast, opts, code) {
|
||||
opts = opts || {};
|
||||
|
||||
this.style = {
|
||||
semicolons: true,
|
||||
comments: true,
|
||||
compact: false,
|
||||
indent: {
|
||||
char: " ",
|
||||
width: 2
|
||||
}
|
||||
};
|
||||
|
||||
this.comments = ast.comments || [];
|
||||
this.tokens = ast.tokens || [];
|
||||
this.opts = opts;
|
||||
this.ast = ast;
|
||||
this.buf = "";
|
||||
|
||||
this._indent = 0;
|
||||
this.format = CodeGenerator.normaliseOptions(opts);
|
||||
this._indent = this.format.indent.base;
|
||||
|
||||
this.whitespace = new Whitespace(this.tokens, this.comments);
|
||||
this.position = new Position;
|
||||
this.map = new SourceMap(this.position, opts, code);
|
||||
}
|
||||
|
||||
CodeGenerator.normaliseOptions = function (opts) {
|
||||
opts = opts.format || {};
|
||||
|
||||
opts = _.merge({
|
||||
parentheses: true,
|
||||
semicolons: true,
|
||||
comments: true,
|
||||
compact: false,
|
||||
indent: {
|
||||
adjustMultilineComment: true,
|
||||
style: " ",
|
||||
base: 0
|
||||
}
|
||||
}, opts);
|
||||
|
||||
return opts;
|
||||
};
|
||||
|
||||
CodeGenerator.generators = {
|
||||
arrayComprehensions: require("./generators/array-comprehensions"),
|
||||
templateLiterals: require("./generators/template-literals"),
|
||||
@@ -58,7 +67,7 @@ _.each(CodeGenerator.generators, function (generator) {
|
||||
|
||||
CodeGenerator.prototype.newline = function (i, removeLast) {
|
||||
if (!this.buf) return;
|
||||
if (this.style.compact) return;
|
||||
if (this.format.compact) return;
|
||||
if (this.endsWith("{\n")) return;
|
||||
|
||||
if (_.isBoolean(i)) {
|
||||
@@ -89,7 +98,7 @@ CodeGenerator.prototype.removeLast = function (cha) {
|
||||
};
|
||||
|
||||
CodeGenerator.prototype.semicolon = function () {
|
||||
if (this.style.semicolons) this.push(";");
|
||||
if (this.format.semicolons) this.push(";");
|
||||
};
|
||||
|
||||
CodeGenerator.prototype.ensureSemicolon = function () {
|
||||
@@ -145,15 +154,15 @@ CodeGenerator.prototype.isLast = function (cha, trimRight) {
|
||||
};
|
||||
|
||||
CodeGenerator.prototype.getIndent = function () {
|
||||
if (this.style.compact) {
|
||||
if (this.format.compact) {
|
||||
return "";
|
||||
} else {
|
||||
return util.repeat(this.indentSize(), this.style.indent.char);
|
||||
return util.repeat(this._indent, this.format.indent.style);
|
||||
}
|
||||
};
|
||||
|
||||
CodeGenerator.prototype.indentSize = function () {
|
||||
return this._indent * this.style.indent.width;
|
||||
return this.getIndent().length;
|
||||
};
|
||||
|
||||
CodeGenerator.prototype.indent = function () {
|
||||
@@ -353,8 +362,8 @@ CodeGenerator.prototype._getComments = function (key, node) {
|
||||
};
|
||||
|
||||
CodeGenerator.prototype._printComments = function (comments) {
|
||||
if (this.style.compact) return;
|
||||
if (!this.style.comments) return;
|
||||
if (this.format.compact) return;
|
||||
if (!this.format.comments) return;
|
||||
if (!comments || !comments.length) return;
|
||||
|
||||
var self = this;
|
||||
@@ -373,14 +382,16 @@ CodeGenerator.prototype._printComments = function (comments) {
|
||||
|
||||
//
|
||||
|
||||
var offset = comment.loc.start.column;
|
||||
if (offset) {
|
||||
var newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g");
|
||||
val = val.replace(newlineRegex, "\n");
|
||||
}
|
||||
if (comment.type === "Block" && self.format.indent.adjustMultilineComment) {
|
||||
var offset = comment.loc.start.column;
|
||||
if (offset) {
|
||||
var newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g");
|
||||
val = val.replace(newlineRegex, "\n");
|
||||
}
|
||||
|
||||
var indent = Math.max(self.indentSize(), column);
|
||||
val = val.replace(/\n/g, "\n" + util.repeat(indent));
|
||||
var indent = Math.max(self.indentSize(), column);
|
||||
val = val.replace(/\n/g, "\n" + util.repeat(indent));
|
||||
}
|
||||
|
||||
if (column === 0) {
|
||||
val = self.getIndent() + val;
|
||||
|
||||
@@ -44,9 +44,11 @@ exports.ConditionalExpression = function (node, print) {
|
||||
exports.NewExpression = function (node, print) {
|
||||
this.push("new ");
|
||||
print(node.callee);
|
||||
this.push("(");
|
||||
print.join(node.arguments, { separator: ", " });
|
||||
this.push(")");
|
||||
if (node.arguments.length || this.format.parentheses) {
|
||||
this.push("(");
|
||||
print.join(node.arguments, { separator: ", " });
|
||||
this.push(")");
|
||||
}
|
||||
};
|
||||
|
||||
exports.SequenceExpression = function (node, print) {
|
||||
@@ -64,15 +66,20 @@ exports.CallExpression = function (node, print) {
|
||||
this.push(")");
|
||||
};
|
||||
|
||||
exports.YieldExpression = function (node, print) {
|
||||
this.push("yield");
|
||||
if (node.delegate) this.push("*");
|
||||
if (node.argument) {
|
||||
this.space();
|
||||
print(node.argument);
|
||||
}
|
||||
var buildYieldAwait = function (keyword) {
|
||||
return function (node, print) {
|
||||
this.push(keyword);
|
||||
if (node.delegate) this.push("*");
|
||||
if (node.argument) {
|
||||
this.space();
|
||||
print(node.argument);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
exports.YieldExpression = buildYieldAwait("yield");
|
||||
exports.AwaitExpression = buildYieldAwait("await");
|
||||
|
||||
exports.EmptyStatement = function () {
|
||||
this.semicolon();
|
||||
};
|
||||
|
||||
@@ -80,6 +80,10 @@ Node.prototype.needsWhitespace = function (type) {
|
||||
if (t.isProperty(node) && parent.properties[0] === node) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (t.isSwitchCase(node) && parent.cases[0] === node) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (type === "after") {
|
||||
|
||||
@@ -46,7 +46,6 @@ _.each({
|
||||
letScoping: require("./transformers/let-scoping"),
|
||||
forOf: require("./transformers/for-of"),
|
||||
unicodeRegex: require("./transformers/unicode-regex"),
|
||||
generators: require("./transformers/generators"),
|
||||
numericLiterals: require("./transformers/numeric-literals"),
|
||||
|
||||
react: require("./transformers/react"),
|
||||
@@ -56,6 +55,7 @@ _.each({
|
||||
_blockHoist: require("./transformers/_block-hoist"),
|
||||
_declarations: require("./transformers/_declarations"),
|
||||
|
||||
generators: require("./transformers/generators"),
|
||||
useStrict: require("./transformers/use-strict"),
|
||||
|
||||
_moduleFormatter: require("./transformers/_module-formatter")
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
var esutils = require("esutils");
|
||||
var t = require("../../types");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.Property = function (node) {
|
||||
// ignore key literals that are valid identifiers
|
||||
var key = node.key;
|
||||
if (t.isLiteral(key) && esutils.keyword.isIdentifierName(key.value)) {
|
||||
if (t.isLiteral(key) && _.isString(key.value) && esutils.keyword.isIdentifierName(key.value)) {
|
||||
key.type = "Identifier";
|
||||
key.name = key.value;
|
||||
delete key.value;
|
||||
|
||||
@@ -80,7 +80,19 @@ exports.XJSElement = {
|
||||
var callExpr = node.openingElement;
|
||||
var children = node.children;
|
||||
|
||||
_.each(children, function (child) {
|
||||
_.each(children, function (child, i) {
|
||||
var val = child.value;
|
||||
if (t.isLiteral(child) && _.isString(val)) {
|
||||
val = val.replace(/\n(\s+)/g, " ");
|
||||
|
||||
i = +i;
|
||||
if (i === 0) val = val.trimLeft();
|
||||
if (i === children.length - 1) val = val.trimRight();
|
||||
|
||||
if (!val) return;
|
||||
child.value = val;
|
||||
}
|
||||
|
||||
callExpr.arguments.push(child);
|
||||
});
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ var checkFor = function (forParent, block) {
|
||||
} else if (t.isReturnStatement(node)) {
|
||||
has.hasReturn = true;
|
||||
replace = t.returnStatement(t.objectExpression([
|
||||
t.property("init", t.identifier("v"), node.argument)
|
||||
t.property("init", t.identifier("v"), node.argument || t.identifier("undefined"))
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -286,16 +286,13 @@ var run = function (forParent, block, parent, file, scope) {
|
||||
|
||||
var retCheck;
|
||||
|
||||
var cases = [];
|
||||
|
||||
if (has.hasReturn) {
|
||||
// typeof ret === "object"
|
||||
retCheck = util.template("let-scoping-return", {
|
||||
RETURN: ret,
|
||||
});
|
||||
|
||||
// there's no `break` or `continue` so we can just push in the `if`
|
||||
if (!has.hasBreak && !has.hasContinue) {
|
||||
body.push(retCheck);
|
||||
}
|
||||
}
|
||||
|
||||
if (has.hasBreak || has.hasContinue) {
|
||||
@@ -303,8 +300,6 @@ var run = function (forParent, block, parent, file, scope) {
|
||||
// need to be able to access it
|
||||
var label = forParent.label = forParent.label || t.identifier(file.generateUid("loop", scope));
|
||||
|
||||
var cases = [];
|
||||
|
||||
if (has.hasBreak) {
|
||||
cases.push(t.switchCase(t.literal("break"), [t.breakStatement(label)]));
|
||||
}
|
||||
@@ -317,7 +312,17 @@ var run = function (forParent, block, parent, file, scope) {
|
||||
cases.push(t.switchCase(null, [retCheck]));
|
||||
}
|
||||
|
||||
body.push(t.switchStatement(ret, cases));
|
||||
if (cases.length === 1) {
|
||||
var single = cases[0];
|
||||
body.push(t.ifStatement(
|
||||
t.binaryExpression("===", ret, single.test),
|
||||
single.consequent[0]
|
||||
));
|
||||
} else {
|
||||
body.push(t.switchStatement(ret, cases));
|
||||
}
|
||||
} else {
|
||||
if (has.hasReturn) body.push(retCheck);
|
||||
}
|
||||
} else {
|
||||
body.push(t.expressionStatement(call));
|
||||
|
||||
@@ -40,8 +40,6 @@ function traverse(parent, callbacks, opts) {
|
||||
// type is blacklisted
|
||||
if (_.contains(blacklistTypes, node.type)) return;
|
||||
|
||||
var result;
|
||||
|
||||
// replace node
|
||||
var maybeReplace = function (result) {
|
||||
if (result === false) return;
|
||||
@@ -54,12 +52,11 @@ function traverse(parent, callbacks, opts) {
|
||||
|
||||
// enter
|
||||
if (callbacks.enter) {
|
||||
result = callbacks.enter(node, parent, opts2.scope);
|
||||
var result = callbacks.enter(node, parent, opts2.scope);
|
||||
maybeReplace(result);
|
||||
|
||||
// stop iteration
|
||||
if (result === false) return;
|
||||
|
||||
maybeReplace(result);
|
||||
}
|
||||
|
||||
// traverse node
|
||||
@@ -114,25 +111,18 @@ traverse.hasType = function (tree, type, blacklistTypes) {
|
||||
|
||||
var has = false;
|
||||
|
||||
if (_.isArray(tree)) {
|
||||
// array of nodes, find the first
|
||||
return tree.some(function (node) {
|
||||
return traverse.hasType(node, type, blacklistTypes);
|
||||
});
|
||||
} else {
|
||||
// the node we're searching in is blacklisted
|
||||
if (_.contains(blacklistTypes, tree.type)) return false;
|
||||
// the node we're searching in is blacklisted
|
||||
if (_.contains(blacklistTypes, tree.type)) return false;
|
||||
|
||||
// the type we're looking for is the same as the passed node
|
||||
if (tree.type === type) return true;
|
||||
// the type we're looking for is the same as the passed node
|
||||
if (tree.type === type) return true;
|
||||
|
||||
traverse(tree, function (node) {
|
||||
if (node.type === type) {
|
||||
has = true;
|
||||
return false;
|
||||
}
|
||||
}, { blacklist: blacklistTypes });
|
||||
}
|
||||
traverse(tree, function (node) {
|
||||
if (node.type === type) {
|
||||
has = true;
|
||||
return false;
|
||||
}
|
||||
}, { blacklist: blacklistTypes });
|
||||
|
||||
return has;
|
||||
};
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"ArrayPattern": ["elements"],
|
||||
"ArrowFunctionExpression": ["params", "defaults", "rest", "body"],
|
||||
"AssignmentExpression": ["left", "right"],
|
||||
"AwaitExpression": ["argument"],
|
||||
"BinaryExpression": ["left", "right"],
|
||||
"BlockStatement": ["body"],
|
||||
"BreakStatement": ["label"],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "6to5",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "1.11.7",
|
||||
"version": "1.11.14",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://github.com/6to5/6to5",
|
||||
"repository": {
|
||||
@@ -44,11 +44,11 @@
|
||||
"es6-symbol": "0.1.1",
|
||||
"regexpu": "0.3.0",
|
||||
"source-map": "0.1.40",
|
||||
"regenerator-6to5": "https://github.com/6to5/regenerator-6to5/archive/b7bc53e1a655879974aad53a8ceb93a70efaa08d.tar.gz",
|
||||
"regenerator-6to5": "https://github.com/6to5/regenerator-6to5/archive/62d1bfcb331dcf0bbcdbbee8043da0c6408f09cf.tar.gz",
|
||||
"chokidar": "0.10.5",
|
||||
"source-map-support": "0.2.8",
|
||||
"esutils": "1.1.4",
|
||||
"acorn-6to5": "https://github.com/6to5/acorn-6to5/archive/49e421660af161af0e75c2fa066ea356d6650e69.tar.gz",
|
||||
"acorn-6to5": "https://github.com/6to5/acorn-6to5/archive/0384a0d51f630f66ed591769c1765581a17d2124.tar.gz",
|
||||
"estraverse": "^1.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
1
polyfill.js
Normal file
1
polyfill.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./lib/6to5/polyfill");
|
||||
@@ -5,9 +5,11 @@ var humanise = function (val) {
|
||||
return val.replace(/-/g, " ");
|
||||
};
|
||||
|
||||
var readFile = function (filename) {
|
||||
var readFile = exports.readFile = function (filename) {
|
||||
if (fs.existsSync(filename)) {
|
||||
return fs.readFileSync(filename, "utf8").trim();
|
||||
var file = fs.readFileSync(filename, "utf8").trim();
|
||||
file = file.replace(/\r\n/g, "\n");
|
||||
return file;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
||||
12
test/bin.js
12
test/bin.js
@@ -1,4 +1,5 @@
|
||||
var readdir = require("fs-readdir-recursive");
|
||||
var helper = require("./_helper");
|
||||
var assert = require("assert");
|
||||
var rimraf = require("rimraf");
|
||||
var mkdirp = require("mkdirp");
|
||||
@@ -11,15 +12,11 @@ var _ = require("lodash");
|
||||
var fixtureLoc = __dirname + "/fixtures/bin";
|
||||
var tmpLoc = __dirname + "/tmp";
|
||||
|
||||
var readFile = function (filename) {
|
||||
return fs.readFileSync(filename, "utf8").trim();
|
||||
};
|
||||
|
||||
var readDir = function (loc) {
|
||||
var files = {};
|
||||
if (fs.existsSync(loc)) {
|
||||
_.each(readdir(loc), function (filename) {
|
||||
var contents = readFile(loc + "/" + filename);
|
||||
var contents = helper.readFile(loc + "/" + filename);
|
||||
files[filename] = contents;
|
||||
});
|
||||
}
|
||||
@@ -51,6 +48,7 @@ var assertTest = function (stdout, stderr, opts) {
|
||||
|
||||
var expectStdout = opts.stdout.trim();
|
||||
stdout = stdout.trim();
|
||||
stdout = stdout.replace(/\\/g, "/");
|
||||
|
||||
if (opts.stdout) {
|
||||
if (opts.stdoutContains) {
|
||||
@@ -63,7 +61,7 @@ var assertTest = function (stdout, stderr, opts) {
|
||||
}
|
||||
|
||||
_.each(opts.outFiles, function (expect, filename) {
|
||||
var actual = readFile(filename);
|
||||
var actual = helper.readFile(filename);
|
||||
chai.expect(actual).to.equal(expect, "out-file " + filename);
|
||||
});
|
||||
};
|
||||
@@ -138,7 +136,7 @@ _.each(fs.readdirSync(fixtureLoc), function (binName) {
|
||||
_.each(["stdout", "stdin", "stderr"], function (key) {
|
||||
var loc = testLoc + "/" + key + ".txt";
|
||||
if (fs.existsSync(loc)) {
|
||||
opts[key] = readFile(loc);
|
||||
opts[key] = helper.readFile(loc);
|
||||
} else {
|
||||
opts[key] = opts[key] || "";
|
||||
}
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
X({
|
||||
"data-prop": x ? Y({
|
||||
prop: 2
|
||||
}) : Z(null, "\n")
|
||||
}) : Z(null)
|
||||
});
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
(X(null, " "));
|
||||
(X(null));
|
||||
|
||||
(X(null, "\n"));
|
||||
(X(null));
|
||||
|
||||
(X(null, "\n string\n"));
|
||||
(X(null, "string"));
|
||||
|
||||
(X(null, "\n string\n string\n "));
|
||||
(X(null, "string string"));
|
||||
|
||||
10
test/fixtures/transformation/let-scoping/for-break-continue-return/actual.js
vendored
Normal file
10
test/fixtures/transformation/let-scoping/for-break-continue-return/actual.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
for (let i in nums) {
|
||||
fns.push(function () { return i; });
|
||||
if (i === 1) {
|
||||
continue;
|
||||
} else if (i === 2) {
|
||||
break;
|
||||
} else if (i === 3) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
24
test/fixtures/transformation/let-scoping/for-break-continue-return/expected.js
vendored
Normal file
24
test/fixtures/transformation/let-scoping/for-break-continue-return/expected.js
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
_loop: for (var i in nums) {
|
||||
var _ret = (function (i) {
|
||||
fns.push(function () {
|
||||
return i;
|
||||
});
|
||||
if (i === 1) {
|
||||
return "continue";
|
||||
} else if (i === 2) {
|
||||
return "break";
|
||||
} else if (i === 3) {
|
||||
return {
|
||||
v: i
|
||||
};
|
||||
}
|
||||
})(i);
|
||||
|
||||
switch (_ret) {
|
||||
case "break": break _loop;
|
||||
case "continue": continue _loop;
|
||||
default: if (typeof _ret === "object") return _ret.v;
|
||||
}
|
||||
}
|
||||
4
test/fixtures/transformation/let-scoping/for-break/actual.js
vendored
Normal file
4
test/fixtures/transformation/let-scoping/for-break/actual.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
for (let i in nums) {
|
||||
fns.push(function () { return i; });
|
||||
break;
|
||||
}
|
||||
12
test/fixtures/transformation/let-scoping/for-break/expected.js
vendored
Normal file
12
test/fixtures/transformation/let-scoping/for-break/expected.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
_loop: for (var i in nums) {
|
||||
var _ret = (function (i) {
|
||||
fns.push(function () {
|
||||
return i;
|
||||
});
|
||||
return "break";
|
||||
})(i);
|
||||
|
||||
if (_ret === "break") break _loop;
|
||||
}
|
||||
4
test/fixtures/transformation/let-scoping/for-continue/actual.js
vendored
Normal file
4
test/fixtures/transformation/let-scoping/for-continue/actual.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
for (let i in nums) {
|
||||
fns.push(function () { return i; });
|
||||
continue;
|
||||
}
|
||||
12
test/fixtures/transformation/let-scoping/for-continue/expected.js
vendored
Normal file
12
test/fixtures/transformation/let-scoping/for-continue/expected.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
_loop: for (var i in nums) {
|
||||
var _ret = (function (i) {
|
||||
fns.push(function () {
|
||||
return i;
|
||||
});
|
||||
return "continue";
|
||||
})(i);
|
||||
|
||||
if (_ret === "continue") continue _loop;
|
||||
}
|
||||
4
test/fixtures/transformation/let-scoping/for-return-undefined/actual.js
vendored
Normal file
4
test/fixtures/transformation/let-scoping/for-return-undefined/actual.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
for (let i in nums) {
|
||||
fns.push(function () { return i; });
|
||||
return;
|
||||
}
|
||||
14
test/fixtures/transformation/let-scoping/for-return-undefined/expected.js
vendored
Normal file
14
test/fixtures/transformation/let-scoping/for-return-undefined/expected.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
for (var i in nums) {
|
||||
var _ret = (function (i) {
|
||||
fns.push(function () {
|
||||
return i;
|
||||
});
|
||||
return {
|
||||
v: undefined
|
||||
};
|
||||
})(i);
|
||||
|
||||
if (typeof _ret === "object") return _ret.v;
|
||||
}
|
||||
4
test/fixtures/transformation/let-scoping/for-return/actual.js
vendored
Normal file
4
test/fixtures/transformation/let-scoping/for-return/actual.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
for (let i in nums) {
|
||||
fns.push(function () { return i; });
|
||||
return i;
|
||||
}
|
||||
14
test/fixtures/transformation/let-scoping/for-return/expected.js
vendored
Normal file
14
test/fixtures/transformation/let-scoping/for-return/expected.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
for (var i in nums) {
|
||||
var _ret = (function (i) {
|
||||
fns.push(function () {
|
||||
return i;
|
||||
});
|
||||
return {
|
||||
v: i
|
||||
};
|
||||
})(i);
|
||||
|
||||
if (typeof _ret === "object") return _ret.v;
|
||||
}
|
||||
3
test/fixtures/transformation/let-scoping/function/actual.js
vendored
Normal file
3
test/fixtures/transformation/let-scoping/function/actual.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
function test() {
|
||||
let foo = "bar";
|
||||
}
|
||||
5
test/fixtures/transformation/let-scoping/function/expected.js
vendored
Normal file
5
test/fixtures/transformation/let-scoping/function/expected.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
function test() {
|
||||
var foo = "bar";
|
||||
}
|
||||
1
test/fixtures/transformation/let-scoping/program/actual.js
vendored
Normal file
1
test/fixtures/transformation/let-scoping/program/actual.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
let test = "foo";
|
||||
3
test/fixtures/transformation/let-scoping/program/expected.js
vendored
Normal file
3
test/fixtures/transformation/let-scoping/program/expected.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
var test = "foo";
|
||||
3
test/fixtures/transformation/misc/custom-runtime/actual.js
vendored
Normal file
3
test/fixtures/transformation/misc/custom-runtime/actual.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
function foo(...test) {
|
||||
|
||||
}
|
||||
5
test/fixtures/transformation/misc/custom-runtime/expected.js
vendored
Normal file
5
test/fixtures/transformation/misc/custom-runtime/expected.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
function foo() {
|
||||
var test = customNamespace.slice.call(arguments);
|
||||
}
|
||||
3
test/fixtures/transformation/misc/custom-runtime/options.json
vendored
Normal file
3
test/fixtures/transformation/misc/custom-runtime/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"runtime": "customNamespace"
|
||||
}
|
||||
3
test/fixtures/transformation/misc/property-literals/actual.js
vendored
Normal file
3
test/fixtures/transformation/misc/property-literals/actual.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
var obj = {
|
||||
"foobar": "lol"
|
||||
};
|
||||
5
test/fixtures/transformation/misc/property-literals/expected.js
vendored
Normal file
5
test/fixtures/transformation/misc/property-literals/expected.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var obj = {
|
||||
foobar: "lol"
|
||||
};
|
||||
3
test/fixtures/transformation/misc/runtime/actual.js
vendored
Normal file
3
test/fixtures/transformation/misc/runtime/actual.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
function foo(...test) {
|
||||
|
||||
}
|
||||
5
test/fixtures/transformation/misc/runtime/expected.js
vendored
Normal file
5
test/fixtures/transformation/misc/runtime/expected.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
function foo() {
|
||||
var test = to5Runtime.slice.call(arguments);
|
||||
}
|
||||
3
test/fixtures/transformation/misc/runtime/options.json
vendored
Normal file
3
test/fixtures/transformation/misc/runtime/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"runtime": true
|
||||
}
|
||||
3
test/fixtures/transformation/misc/shebang/actual.js
vendored
Normal file
3
test/fixtures/transformation/misc/shebang/actual.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
foobar();
|
||||
4
test/fixtures/transformation/misc/shebang/expected.js
vendored
Normal file
4
test/fixtures/transformation/misc/shebang/expected.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
"use strict";
|
||||
|
||||
foobar();
|
||||
Reference in New Issue
Block a user