Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88856e040d | ||
|
|
9f493b23ab | ||
|
|
cc84b5e1a4 | ||
|
|
2be2e4e1ae | ||
|
|
435cd98480 | ||
|
|
d3b088cc6d | ||
|
|
234d9997c8 | ||
|
|
dcaea68240 | ||
|
|
6c48e6cd66 | ||
|
|
8e2abad41c | ||
|
|
f06901ac05 | ||
|
|
531ea91a07 | ||
|
|
0188556b36 | ||
|
|
aeac003dc8 | ||
|
|
41ab47dde8 | ||
|
|
112932f9ee | ||
|
|
0efeed3d5e | ||
|
|
55fdf11555 | ||
|
|
d801c95f6e | ||
|
|
138d714589 | ||
|
|
123de49d9c | ||
|
|
7cd574d7bc | ||
|
|
45c8c29cdf | ||
|
|
5b08924c02 | ||
|
|
c2930c9650 | ||
|
|
5db127e622 |
20
README.md
20
README.md
@@ -172,8 +172,9 @@ to5.transformFile("filename.js", options, function (err, result) {
|
||||
|
||||
#### Require hook
|
||||
|
||||
All subsequent files required by node will be transformed by 6to5. The polyfill
|
||||
specified in [Polyfill](#polyfill) is also required.
|
||||
All subsequent files required by node with the extensions `.es6` and `.js` will
|
||||
be transformed by 6to5. The polyfill specified in [Polyfill](#polyfill) is also
|
||||
required.
|
||||
|
||||
```javascript
|
||||
require("6to5/register");
|
||||
@@ -183,7 +184,20 @@ require("6to5/register");
|
||||
override this by passing an ignore regex via:
|
||||
|
||||
```javascript
|
||||
require("6to5/register")(/regex/)
|
||||
require("6to5/register")(/regex/);
|
||||
```
|
||||
|
||||
You can also customise the file extensions that the require hook will use via:
|
||||
|
||||
```javascript
|
||||
require("6to5/register")({
|
||||
// optional ignore regex
|
||||
ignoreRegex: /regex/,
|
||||
|
||||
// this will remove the currently hooked extensions of .es6 and .js so you'll
|
||||
// have to add them back if you want them to be used again
|
||||
extensions: [".js", ".es6"]
|
||||
});
|
||||
```
|
||||
|
||||
### Browser
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
var commander = require("commander");
|
||||
var Module = require("module");
|
||||
var path = require("path");
|
||||
var util = require("../lib/6to5/util");
|
||||
var path = require("path");
|
||||
var repl = require("repl");
|
||||
@@ -12,13 +11,29 @@ var _ = require("lodash");
|
||||
|
||||
commander.option("-e, --eval [script]", "evaluate script");
|
||||
commander.option("-p, --print", "evaluate script and print result");
|
||||
commander.option("-i, --ignore [regex]", "ignore all files that match this regex when using the require hook");
|
||||
commander.option("-x, --extensions [extensions]", "list of extensions to hook into [.es6,.js]", util.list);
|
||||
|
||||
var pkg = require("../package.json");
|
||||
commander.version(pkg.version);
|
||||
commander.usage("[options] [ -e script | script.js ] [arguments]");
|
||||
commander.parse(process.argv);
|
||||
|
||||
to5.register();
|
||||
//
|
||||
|
||||
var registerOpts = {};
|
||||
|
||||
if (commander.ignore) {
|
||||
registerOpts.ignoreRegex = new RegExp(commander.ignore);
|
||||
}
|
||||
|
||||
if (commander.extensions && commander.extensions.length) {
|
||||
registerOpts.extensions = commander.extensions
|
||||
}
|
||||
|
||||
to5.register(registerOpts);
|
||||
|
||||
//
|
||||
|
||||
var _eval = function (code, filename) {
|
||||
code = to5.transform(code, { filename: filename }).code;
|
||||
@@ -26,9 +41,7 @@ var _eval = function (code, filename) {
|
||||
};
|
||||
|
||||
if (commander.eval) {
|
||||
var code = to5.transform(commander.eval, { filename: "eval" }).code;
|
||||
|
||||
var result = _eval(code, "eval");
|
||||
var result = _eval(commander.eval, "eval");
|
||||
if (commander.print) console.log(result);
|
||||
} else {
|
||||
var filenames = commander.args;
|
||||
|
||||
@@ -13,7 +13,7 @@ module.exports = function (commander, filenames, opts) {
|
||||
var write = function (src, relative) {
|
||||
var dest = path.join(commander.outDir, relative);
|
||||
|
||||
var data = util.compile(src, dest);
|
||||
var data = util.compile(src, { sourceMapName: dest });
|
||||
|
||||
var up = path.normalize(dest + "/..");
|
||||
mkdirp.sync(up);
|
||||
|
||||
@@ -100,8 +100,8 @@ module.exports = function (commander, filenames, opts) {
|
||||
}
|
||||
});
|
||||
|
||||
_.each(_filenames, function (filename) {
|
||||
results.push(util.compile(filename));
|
||||
_.each(_filenames, function (filename, i) {
|
||||
results.push(util.compile(filename, { _noStrict: i != 0 }));
|
||||
});
|
||||
|
||||
output();
|
||||
|
||||
@@ -5,6 +5,8 @@ var sourceMap = require("source-map");
|
||||
var transform = require("../../lib/6to5/transform");
|
||||
var chokidar = require("chokidar");
|
||||
var mkdirp = require("mkdirp");
|
||||
var util2 = require("../../lib/6to5/util");
|
||||
var util = require("./util");
|
||||
var path = require("path");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
@@ -14,12 +16,8 @@ commander.option("-s, --source-maps", "Save source map alongside the compiled co
|
||||
commander.option("-f, --filename [filename]", "Filename to use when reading from stdin - this will be used in source-maps, errors etc [stdin]", "stdin");
|
||||
commander.option("-w, --watch", "Recompile files on changes");
|
||||
|
||||
var list = function (val) {
|
||||
return val ? val.split(",") : [];
|
||||
};
|
||||
|
||||
commander.option("-w, --whitelist [whitelist]", "Whitelist of transformers to ONLY use", list);
|
||||
commander.option("-b, --blacklist [blacklist]", "Blacklist of transformers to NOT use", list);
|
||||
commander.option("-w, --whitelist [whitelist]", "Whitelist of transformers to ONLY use", util2.list);
|
||||
commander.option("-b, --blacklist [blacklist]", "Blacklist of transformers to NOT use", util2.list);
|
||||
commander.option("-o, --out-file [out]", "Compile all input files into a single file");
|
||||
commander.option("-d, --out-dir [out]", "Compile an input directory of modules into an output directory");
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ exports.readdirFilter = function (filename) {
|
||||
return readdir(filename).filter(util.canCompile);
|
||||
};
|
||||
|
||||
exports.transform = function (filename, code, to) {
|
||||
var opts = _.extend({ filename: filename }, index.opts);
|
||||
if (to) opts.sourceMapName = to;
|
||||
exports.transform = function (filename, code, opts) {
|
||||
opts = _.extend(opts || {}, index.opts);
|
||||
opts.filename = filename;
|
||||
|
||||
var result = to5.transform(code, opts);
|
||||
result.filename = filename;
|
||||
@@ -19,7 +19,7 @@ exports.transform = function (filename, code, to) {
|
||||
return result;
|
||||
};
|
||||
|
||||
exports.compile = function (filename, to) {
|
||||
exports.compile = function (filename, opts) {
|
||||
var code = fs.readFileSync(filename, "utf8");
|
||||
return exports.transform(filename, code, to);
|
||||
return exports.transform(filename, code, opts);
|
||||
};
|
||||
|
||||
@@ -22,8 +22,7 @@ File.normaliseOptions = function (opts) {
|
||||
blacklist: [],
|
||||
whitelist: [],
|
||||
sourceMap: false,
|
||||
filename: "unknown",
|
||||
format: {}
|
||||
filename: "unknown"
|
||||
});
|
||||
|
||||
_.defaults(opts, {
|
||||
@@ -80,14 +79,6 @@ File.prototype.transform = function (ast) {
|
||||
transformer.transform(self);
|
||||
});
|
||||
|
||||
var body = ast.program.body;
|
||||
|
||||
_.each(this.declarations, function (declar) {
|
||||
body.unshift(b.variableDeclaration("var", [
|
||||
b.variableDeclarator(declar.uid, declar.node)
|
||||
]));
|
||||
});
|
||||
|
||||
return this.generate();
|
||||
};
|
||||
|
||||
@@ -95,7 +86,10 @@ File.prototype.generate = function () {
|
||||
var opts = this.opts;
|
||||
var ast = this.ast;
|
||||
|
||||
var printOpts = {};
|
||||
var printOpts = {
|
||||
tabWidth: 2
|
||||
};
|
||||
|
||||
if (opts.sourceMap) {
|
||||
printOpts.sourceMapName = opts.sourceMapName;
|
||||
}
|
||||
|
||||
@@ -4,8 +4,10 @@ var _ = require("lodash");
|
||||
|
||||
exports.util = require("./util");
|
||||
|
||||
exports.register = function () {
|
||||
return require("./register");
|
||||
exports.register = function (opts) {
|
||||
var register = require("./register");
|
||||
if (opts != null) register(opts);
|
||||
return register;
|
||||
};
|
||||
|
||||
exports.polyfill = function () {
|
||||
|
||||
@@ -1,15 +1,31 @@
|
||||
require("./polyfill");
|
||||
|
||||
var maps = {};
|
||||
var to5 = require("./index");
|
||||
var old = require.extensions[".js"];
|
||||
var sourceMapSupport = require("source-map-support");
|
||||
var to5 = require("./index");
|
||||
var _ = require("lodash");
|
||||
|
||||
// TODO: source maps - Error.prepareStackTrace override
|
||||
sourceMapSupport.install({
|
||||
retrieveSourceMap: function (source) {
|
||||
var map = maps[source];
|
||||
if (map) {
|
||||
return {
|
||||
url: null,
|
||||
map: map
|
||||
};
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
|
||||
var ignoreRegex = /node_modules/;
|
||||
var exts = [];
|
||||
var maps = {};
|
||||
var old = require.extensions[".js"];
|
||||
|
||||
require.extensions[".js"] =
|
||||
require.extensions[".es6"] = function (m, filename) {
|
||||
var loader = function (m, filename) {
|
||||
if (ignoreRegex && ignoreRegex.test(filename)) {
|
||||
return old.apply(this, arguments);
|
||||
}
|
||||
@@ -23,6 +39,27 @@ require.extensions[".es6"] = function (m, filename) {
|
||||
m._compile(result.code, filename);
|
||||
};
|
||||
|
||||
module.exports = function (_ignoreRegex) {
|
||||
ignoreRegex = _ignoreRegex;
|
||||
var hookExtensions = function (_exts) {
|
||||
_.each(exts, function (ext) {
|
||||
delete require.extensions[ext];
|
||||
});
|
||||
|
||||
exts = _exts;
|
||||
|
||||
_.each(exts, function (ext) {
|
||||
require.extensions[ext] = loader;
|
||||
});
|
||||
};
|
||||
|
||||
hookExtensions([".es6", ".js"]);
|
||||
|
||||
module.exports = function (opts) {
|
||||
opts = opts || {};
|
||||
if (_.isRegExp(opts)) opts = { ignoreRegex: opts };
|
||||
|
||||
if (opts.ignoreRegex != null) {
|
||||
ignoreRegex = opts.ignoreRegex;
|
||||
}
|
||||
|
||||
if (opts.extensions) hookExtensions(opts.extensions);
|
||||
};
|
||||
|
||||
@@ -39,11 +39,13 @@ transform.test = function (task, assert) {
|
||||
var actualCode = actual.code.trim();
|
||||
var expectCode = expect.code.trim();
|
||||
|
||||
var printOpts = { tabWidth: 2 };
|
||||
|
||||
result = transform(actualCode, getOpts(actual.filename));
|
||||
actualCode = recast.prettyPrint(result.ast).code;
|
||||
actualCode = recast.prettyPrint(result.ast, printOpts).code;
|
||||
|
||||
var expectAst = util.parse(expect, expectCode);
|
||||
var expectResult = recast.prettyPrint(expectAst);
|
||||
var expectResult = recast.prettyPrint(expectAst, printOpts);
|
||||
expectCode = expectResult.code;
|
||||
|
||||
assert.equal(actualCode, expectCode);
|
||||
@@ -94,7 +96,14 @@ transform.transformers = {
|
||||
unicodeRegex: require("./transformers/unicode-regex"),
|
||||
generators: require("./transformers/generators"),
|
||||
|
||||
_aliasFunctions: require("./transformers/_alias-functions")
|
||||
react: require("./transformers/react"),
|
||||
jsx: require("./transformers/jsx"),
|
||||
|
||||
_aliasFunctions: require("./transformers/_alias-functions"),
|
||||
_blockHoist: require("./transformers/_block-hoist"),
|
||||
_declarations: require("./transformers/_declarations"),
|
||||
|
||||
useStrict: require("./transformers/use-strict")
|
||||
};
|
||||
|
||||
_.each(transform.transformers, function (transformer, key) {
|
||||
|
||||
@@ -13,6 +13,7 @@ Transformer.normalise = function (transformer) {
|
||||
transformer = { ast: transformer };
|
||||
} else {
|
||||
_.each(transformer, function (fns, type) {
|
||||
if (type === "ast") return;
|
||||
if (_.isFunction(fns)) fns = { enter: fns };
|
||||
transformer[type] = fns;
|
||||
});
|
||||
@@ -27,7 +28,7 @@ Transformer.prototype.transform = function (file) {
|
||||
var ast = file.ast;
|
||||
|
||||
if (transformer.ast) {
|
||||
transformer.ast(ast);
|
||||
transformer.ast(ast, file);
|
||||
}
|
||||
|
||||
var build = function (exit) {
|
||||
@@ -59,6 +60,8 @@ Transformer.prototype.transform = function (file) {
|
||||
};
|
||||
|
||||
Transformer.prototype.canRun = function (file) {
|
||||
if (this.key[0] === "_") return true;
|
||||
|
||||
var opts = file.opts;
|
||||
|
||||
var blacklist = opts.blacklist;
|
||||
|
||||
17
lib/6to5/transformers/_block-hoist.js
Normal file
17
lib/6to5/transformers/_block-hoist.js
Normal file
@@ -0,0 +1,17 @@
|
||||
exports.BlockStatement =
|
||||
exports.Program = {
|
||||
exit: function (node) {
|
||||
var unshift = [];
|
||||
|
||||
node.body = node.body.filter(function (bodyNode) {
|
||||
if (bodyNode._blockHoist) {
|
||||
unshift.push(bodyNode);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
node.body = unshift.concat(node.body);
|
||||
}
|
||||
};
|
||||
12
lib/6to5/transformers/_declarations.js
Normal file
12
lib/6to5/transformers/_declarations.js
Normal file
@@ -0,0 +1,12 @@
|
||||
var b = require("recast").types.builders;
|
||||
var _ = require("lodash");
|
||||
|
||||
module.exports = function (ast, file) {
|
||||
var body = ast.program.body;
|
||||
|
||||
_.each(file.declarations, function (declar) {
|
||||
body.unshift(b.variableDeclaration("var", [
|
||||
b.variableDeclarator(declar.uid, declar.node)
|
||||
]));
|
||||
});
|
||||
};
|
||||
99
lib/6to5/transformers/jsx/index.js
Normal file
99
lib/6to5/transformers/jsx/index.js
Normal file
@@ -0,0 +1,99 @@
|
||||
// Based upon the excellent jsx-transpiler by Ingvar Stepanyan (RReverser)
|
||||
// https://github.com/RReverser/jsx-transpiler
|
||||
|
||||
var esutils = require("esutils");
|
||||
var b = require("recast").types.builders;
|
||||
var _ = require("lodash");
|
||||
|
||||
var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/;
|
||||
var KNOWN_TAGS = require("./known-tags");
|
||||
|
||||
exports.Program = function (node, parent, file) {
|
||||
var jsx = "React.DOM";
|
||||
|
||||
// looking for namespace annotation
|
||||
_.each(node.comments, function (comment) {
|
||||
if (!comment.possiblyLeading) return;
|
||||
|
||||
var matches = JSX_ANNOTATION_REGEX.exec(comment.value);
|
||||
if (matches) jsx = matches[1];
|
||||
});
|
||||
|
||||
// prebuilding AST node
|
||||
file.jsx = jsx.split(".").map(b.identifier).reduce(function (object, property) {
|
||||
return b.memberExpression(object, property, false);
|
||||
});
|
||||
};
|
||||
|
||||
exports.XJSIdentifier = function (node) {
|
||||
if (esutils.keyword.isIdentifierName(node.name)) {
|
||||
node.type = "Identifier";
|
||||
} else {
|
||||
return b.literal(node.name);
|
||||
}
|
||||
};
|
||||
|
||||
exports.XJSNamespacedName = function () {
|
||||
throw new Error("Namespace tags are not supported. ReactJSX is not XML.");
|
||||
};
|
||||
|
||||
exports.XJSMemberExpression = {
|
||||
exit: function (node) {
|
||||
node.computed = node.property.type === "Literal";
|
||||
node.type = "MemberExpression";
|
||||
}
|
||||
};
|
||||
|
||||
exports.XJSEmptyExpression = function (node) {
|
||||
node.value = null;
|
||||
node.type = "Literal";
|
||||
};
|
||||
|
||||
exports.XJSExpressionContainer = function (node) {
|
||||
return node.expression;
|
||||
};
|
||||
|
||||
exports.XJSAttribute = {
|
||||
exit: function (node) {
|
||||
var value = node.value || b.literal(true);
|
||||
var propNode = b.property("init", node.name, value);
|
||||
propNode.loc = node.loc;
|
||||
return propNode;
|
||||
}
|
||||
};
|
||||
|
||||
exports.XJSOpeningElement = {
|
||||
exit: function (node, parent, file) {
|
||||
var tagExpr = node.name;
|
||||
|
||||
if (_.contains(KNOWN_TAGS, tagExpr.name)) {
|
||||
tagExpr = b.memberExpression(file.jsx, tagExpr, false);
|
||||
}
|
||||
|
||||
var props = node.attributes;
|
||||
if (props.length) {
|
||||
props = b.objectExpression(props);
|
||||
} else {
|
||||
props = b.literal(null);
|
||||
}
|
||||
|
||||
return b.callExpression(tagExpr, [props]);
|
||||
}
|
||||
};
|
||||
|
||||
exports.XJSElement = {
|
||||
exit: function (node) {
|
||||
var callExpr = node.openingElement;
|
||||
var children = node.children;
|
||||
var args = callExpr.arguments;
|
||||
|
||||
switch (children.length) {
|
||||
case 0: break;
|
||||
case 1: args.push(children[0]); break;
|
||||
default: args.push(b.arrayExpression(children));
|
||||
}
|
||||
|
||||
callExpr.loc = node.loc;
|
||||
return callExpr;
|
||||
}
|
||||
};
|
||||
132
lib/6to5/transformers/jsx/known-tags.json
Normal file
132
lib/6to5/transformers/jsx/known-tags.json
Normal file
@@ -0,0 +1,132 @@
|
||||
[
|
||||
"a",
|
||||
"abbr",
|
||||
"address",
|
||||
"applet",
|
||||
"area",
|
||||
"article",
|
||||
"aside",
|
||||
"audio",
|
||||
"b",
|
||||
"base",
|
||||
"bdi",
|
||||
"bdo",
|
||||
"big",
|
||||
"blockquote",
|
||||
"body",
|
||||
"br",
|
||||
"button",
|
||||
"canvas",
|
||||
"caption",
|
||||
"circle",
|
||||
"cite",
|
||||
"code",
|
||||
"col",
|
||||
"colgroup",
|
||||
"command",
|
||||
"data",
|
||||
"datalist",
|
||||
"dd",
|
||||
"defs",
|
||||
"del",
|
||||
"details",
|
||||
"dfn",
|
||||
"dialog",
|
||||
"div",
|
||||
"dl",
|
||||
"dt",
|
||||
"ellipse",
|
||||
"em",
|
||||
"embed",
|
||||
"fieldset",
|
||||
"figcaption",
|
||||
"figure",
|
||||
"footer",
|
||||
"form",
|
||||
"g",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
"h4",
|
||||
"h5",
|
||||
"h6",
|
||||
"head",
|
||||
"header",
|
||||
"hgroup",
|
||||
"hr",
|
||||
"html",
|
||||
"i",
|
||||
"iframe",
|
||||
"img",
|
||||
"input",
|
||||
"ins",
|
||||
"kbd",
|
||||
"keygen",
|
||||
"label",
|
||||
"legend",
|
||||
"li",
|
||||
"line",
|
||||
"linearGradient",
|
||||
"link",
|
||||
"main",
|
||||
"map",
|
||||
"mark",
|
||||
"marquee",
|
||||
"menu",
|
||||
"menuitem",
|
||||
"meta",
|
||||
"meter",
|
||||
"nav",
|
||||
"noscript",
|
||||
"object",
|
||||
"ol",
|
||||
"optgroup",
|
||||
"option",
|
||||
"output",
|
||||
"p",
|
||||
"param",
|
||||
"path",
|
||||
"polygon",
|
||||
"polyline",
|
||||
"pre",
|
||||
"progress",
|
||||
"q",
|
||||
"radialGradient",
|
||||
"rect",
|
||||
"rp",
|
||||
"rt",
|
||||
"ruby",
|
||||
"s",
|
||||
"samp",
|
||||
"script",
|
||||
"section",
|
||||
"select",
|
||||
"small",
|
||||
"source",
|
||||
"span",
|
||||
"stop",
|
||||
"strong",
|
||||
"style",
|
||||
"sub",
|
||||
"summary",
|
||||
"sup",
|
||||
"svg",
|
||||
"table",
|
||||
"tbody",
|
||||
"td",
|
||||
"text",
|
||||
"textarea",
|
||||
"tfoot",
|
||||
"th",
|
||||
"thead",
|
||||
"time",
|
||||
"title",
|
||||
"tr",
|
||||
"track",
|
||||
"tspan",
|
||||
"u",
|
||||
"ul",
|
||||
"var",
|
||||
"video",
|
||||
"wbr"
|
||||
]
|
||||
@@ -26,8 +26,10 @@ exports.VariableDeclaration = function (node, parent, file) {
|
||||
if (util.isReferenced(node, parent)) return id;
|
||||
};
|
||||
|
||||
var isProgram = parent.type === "Program";
|
||||
|
||||
var replace = function (node, parent) {
|
||||
if (_.contains(traverse.FUNCTION_TYPES, node.type)) {
|
||||
if (!isProgram && _.contains(traverse.FUNCTION_TYPES, node.type)) {
|
||||
var letReferences = [];
|
||||
|
||||
traverse(node, function (node, parent) {
|
||||
@@ -37,9 +39,13 @@ exports.VariableDeclaration = function (node, parent, file) {
|
||||
});
|
||||
|
||||
if (letReferences.length) {
|
||||
return b.callExpression(b.functionExpression(null, letReferences, b.blockStatement([
|
||||
b.returnStatement(node)
|
||||
])), letReferences);
|
||||
if (node.type === "FunctionDeclaration") {
|
||||
throw new Error("`FunctionDeclaration`s that use `let` and `constant` references aren't allowed outside of the root scope");
|
||||
} else {
|
||||
return b.callExpression(b.functionExpression(null, letReferences, b.blockStatement([
|
||||
b.returnStatement(node)
|
||||
])), letReferences);
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -72,11 +72,7 @@ var pushExportDeclaration = function (node, parent, nodes) {
|
||||
var declar = node.declaration;
|
||||
|
||||
if (node.default) {
|
||||
if (declar.type === "FunctionDeclaration") {
|
||||
declar.type = "FunctionExpression";
|
||||
} else if (declar.type === "ClassDeclaration") {
|
||||
declar.type = "ClassExpression";
|
||||
}
|
||||
util.ensureExpressionType(declar);
|
||||
|
||||
nodes.push(util.template("exports-default", {
|
||||
VALUE: declar
|
||||
@@ -95,30 +91,13 @@ var pushExportDeclaration = function (node, parent, nodes) {
|
||||
nodes.push(declar);
|
||||
|
||||
if (declar.type === "FunctionDeclaration") {
|
||||
assign._modulesHoist = true;
|
||||
assign._blockHoist = true;
|
||||
}
|
||||
|
||||
nodes.push(assign);
|
||||
}
|
||||
};
|
||||
|
||||
exports.Program = {
|
||||
exit: function (node) {
|
||||
var unshift = [];
|
||||
|
||||
node.body = node.body.filter(function (bodyNode) {
|
||||
if (bodyNode._modulesHoist) {
|
||||
unshift.push(bodyNode);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
node.body = unshift.concat(node.body);
|
||||
}
|
||||
};
|
||||
|
||||
exports.ExportDeclaration = function (node, parent) {
|
||||
var nodes = [];
|
||||
|
||||
|
||||
63
lib/6to5/transformers/react.js
vendored
Normal file
63
lib/6to5/transformers/react.js
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
var b = require("recast").types.builders;
|
||||
var _ = require("lodash");
|
||||
|
||||
var addDisplayName = function (id, call) {
|
||||
if (!call || call.type !== "CallExpression") return;
|
||||
|
||||
var callee = call.callee;
|
||||
if (callee.type !== "MemberExpression") return;
|
||||
|
||||
// not React
|
||||
var obj = callee.object;
|
||||
if (obj.type !== "Identifier" || obj.name !== "React") return;
|
||||
|
||||
// not createClass
|
||||
var prop = callee.property;
|
||||
if (prop.type !== "Identifier" || prop.name !== "createClass") return;
|
||||
|
||||
// no arguments
|
||||
var args = call.arguments;
|
||||
if (args.length !== 1) return;
|
||||
|
||||
// not an object
|
||||
var first = args[0];
|
||||
if (first.type !== "ObjectExpression") return;
|
||||
|
||||
var props = first.properties;
|
||||
var safe = true;
|
||||
|
||||
_.each(props, function (prop) {
|
||||
if (prop.key.name === "displayName") {
|
||||
return safe = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (safe) {
|
||||
props.unshift(b.property("init", b.identifier("displayName"), b.literal(id)));
|
||||
}
|
||||
};
|
||||
|
||||
exports.AssignmentExpression =
|
||||
exports.Property =
|
||||
exports.VariableDeclarator = function (node) {
|
||||
var left, right;
|
||||
|
||||
if (node.type === "AssignmentExpression") {
|
||||
left = node.left;
|
||||
right = node.right;
|
||||
} else if (node.type === "Property") {
|
||||
left = node.key;
|
||||
right = node.value;
|
||||
} else if (node.type === "VariableDeclarator") {
|
||||
left = node.id;
|
||||
right = node.init;
|
||||
}
|
||||
|
||||
if (left && left.type === "MemberExpression") {
|
||||
left = left.property;
|
||||
}
|
||||
|
||||
if (left && left.type === "Identifier") {
|
||||
addDisplayName(left.name, right);
|
||||
}
|
||||
};
|
||||
15
lib/6to5/transformers/use-strict.js
Normal file
15
lib/6to5/transformers/use-strict.js
Normal file
@@ -0,0 +1,15 @@
|
||||
var b = require("recast").types.builders;
|
||||
|
||||
module.exports = function (ast, file) {
|
||||
var body = ast.program.body;
|
||||
var first = body[0];
|
||||
|
||||
var noStrict = !first || first.type !== "ExpressionStatement" || first.expression.type !== "Literal" || first.expression.value !== "use strict";
|
||||
|
||||
if (noStrict) {
|
||||
if (file.opts._noStrict) return;
|
||||
body.unshift(b.expressionStatement(b.literal("use strict")));
|
||||
} else {
|
||||
if (file.opts._noStrict) body.shift();
|
||||
}
|
||||
};
|
||||
@@ -34,20 +34,30 @@ var traverse = module.exports = function (parent, callbacks, blacklistTypes) {
|
||||
// type is blacklisted
|
||||
if (_.contains(blacklistTypes, node.type)) return;
|
||||
|
||||
// enter
|
||||
var result = callbacks.enter(node, parent, obj, key);
|
||||
|
||||
// stop iteration
|
||||
if (result === false) return;
|
||||
var result;
|
||||
|
||||
// replace node
|
||||
if (result != null) node = obj[key] = result;
|
||||
var maybeReplace = function (result) {
|
||||
if (result != null) obj[key] = result;
|
||||
};
|
||||
|
||||
// enter
|
||||
if (callbacks.enter) {
|
||||
result = callbacks.enter(node, parent, obj, key);
|
||||
|
||||
// stop iteration
|
||||
if (result === false) return;
|
||||
|
||||
maybeReplace(result);
|
||||
}
|
||||
|
||||
// traverse node
|
||||
traverse(node, callbacks, blacklistTypes);
|
||||
|
||||
// exit
|
||||
if (callbacks.exit) callbacks.exit(node, parent, obj, key);
|
||||
if (callbacks.exit) {
|
||||
maybeReplace(callbacks.exit(node, parent, obj, key));
|
||||
}
|
||||
};
|
||||
|
||||
if (_.isArray(nodes)) {
|
||||
|
||||
@@ -72,5 +72,15 @@
|
||||
"VoidTypeAnnotation": [],
|
||||
"WhileStatement": ["test", "body"],
|
||||
"WithStatement": ["object", "body"],
|
||||
"XJSIdentifier": [],
|
||||
"XJSNamespacedName": ["namespace", "name"],
|
||||
"XJSMemberExpression": ["object", "property"],
|
||||
"XJSEmptyExpression": [],
|
||||
"XJSExpressionContainer": ["expression"],
|
||||
"XJSElement": ["openingElement", "closingElement", "children"],
|
||||
"XJSClosingElement": ["name"],
|
||||
"XJSOpeningElement": ["name", "attributes"],
|
||||
"XJSAttribute": ["name", "value"],
|
||||
"XJSText": [],
|
||||
"YieldExpression": ["argument"]
|
||||
}
|
||||
|
||||
@@ -20,6 +20,18 @@ exports.ensureBlock = function (node) {
|
||||
node.body = b.blockStatement(block);
|
||||
};
|
||||
|
||||
exports.list = function (val) {
|
||||
return val ? val.split(",") : [];
|
||||
};
|
||||
|
||||
exports.ensureExpressionType = function (node) {
|
||||
node.type = {
|
||||
FunctionDeclaration: "FunctionExpression",
|
||||
ClassDeclaration: "ClassExpression"
|
||||
}[node.type] || node.type;
|
||||
return node;
|
||||
};
|
||||
|
||||
exports.getUid = function (parent, file) {
|
||||
var node;
|
||||
|
||||
|
||||
12
package.json
12
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "6to5",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "1.9.4",
|
||||
"version": "1.9.8",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://github.com/sebmck/6to5",
|
||||
"repository": {
|
||||
@@ -44,19 +44,21 @@
|
||||
"recast": "0.8.0",
|
||||
"source-map": "0.1.40",
|
||||
"regenerator": "0.6.7",
|
||||
"chokidar": "^0.9.0"
|
||||
"chokidar": "^0.9.0",
|
||||
"source-map-support": "^0.2.7",
|
||||
"esutils": "^1.1.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"es6-transpiler": "0.7.17",
|
||||
"istanbul": "0.3.2",
|
||||
"matcha": "0.5.0",
|
||||
"mocha": "1.21.4",
|
||||
"traceur": "0.0.66",
|
||||
"mocha": "1.21.5",
|
||||
"traceur": "0.0.67",
|
||||
"esnext": "0.11.1",
|
||||
"es6now": "0.8.11",
|
||||
"jstransform": "6.3.2",
|
||||
"uglify-js": "2.4.15",
|
||||
"browserify": "6.0.3",
|
||||
"browserify": "6.1.0",
|
||||
"proclaim": "2.0.0",
|
||||
"rimraf": "2.2.8",
|
||||
"jshint": "2.5.6"
|
||||
|
||||
1
test/fixtures/bin/6to5-node/--extensions/in-files/foo.bar
vendored
Normal file
1
test/fixtures/bin/6to5-node/--extensions/in-files/foo.bar
vendored
Normal file
@@ -0,0 +1 @@
|
||||
console.log([1, 2, 3].map(x => x * x));
|
||||
4
test/fixtures/bin/6to5-node/--extensions/options.json
vendored
Normal file
4
test/fixtures/bin/6to5-node/--extensions/options.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"args": ["foo", "--extensions", ".bar"],
|
||||
"stdout": "[ 1, 4, 9 ]"
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
"use strict";
|
||||
arr.map(x => x * MULTIPLIER);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
}();
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2Jhci9iYXIuanMiLCJzb3VyY2VzIjpbInNyYy9iYXIvYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJJQUFNLENBQUMsQ0FBQyxDQUFDO01BQUgsQ0FBQyxDQUFDLENBQUMsYUFBSCxDQUFDLENBQUMsQ0FBQztTQUFILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVGVzdCB7XG5cbn0iXX0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2Jhci9iYXIuanMiLCJzb3VyY2VzIjpbInNyYy9iYXIvYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0lBQU0sQ0FBQyxDQUFDLENBQUM7TUFBSCxDQUFDLENBQUMsQ0FBQyxhQUFILENBQUMsQ0FBQyxDQUFDO1NBQUgsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBUZXN0IHtcblxufSJdfQ==
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2Zvby5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQUM7U0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2Zvby5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFDO1NBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogTVVMVElQTElFUik7Il19
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"lib/bar/bar.js","sources":["src/bar/bar.js"],"names":[],"mappings":"IAAM,CAAC,CAAC,CAAC;MAAH,CAAC,CAAC,CAAC,aAAH,CAAC,CAAC,CAAC;SAAH,CAAC,CAAC,CAAC","sourcesContent":["class Test {\n\n}"]}
|
||||
{"version":3,"file":"src/bar/bar.js","sources":["src/bar/bar.js"],"names":[],"mappings":";;IAAM,CAAC,CAAC,CAAC;MAAH,CAAC,CAAC,CAAC,aAAH,CAAC,CAAC,CAAC;SAAH,CAAC,CAAC,CAAC","sourcesContent":["class Test {\n\n}"]}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"lib/foo.js","sources":["src/foo.js"],"names":[],"mappings":"AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,CAAC","sourcesContent":["arr.map(x => x * MULTIPLIER);"]}
|
||||
{"version":3,"file":"src/foo.js","sources":["src/foo.js"],"names":[],"mappings":";AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,CAAC","sourcesContent":["arr.map(x => x * MULTIPLIER);"]}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQUM7U0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBQyxDQUFDIiwiZmlsZSI6InNjcmlwdDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ==
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFDO1NBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUMsQ0FBQyIsImZpbGUiOiJzY3JpcHQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0=
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
@@ -6,4 +8,4 @@ arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IklBQU0sQ0FBQyxDQUFDLENBQUM7TUFBSCxDQUFDLENBQUMsQ0FBQyxhQUFILENBQUMsQ0FBQyxDQUFDO1NBQUgsQ0FBQyxDQUFDLENBQUM7OztBQ0FULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBQztTQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFDLENBQUMiLCJmaWxlIjoic2NyaXB0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRlc3Qge1xuXG59IiwiYXJyLm1hcCh4ID0+IHggKiBNVUxUSVBMSUVSKTsiXX0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyIsInNjcmlwdDIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7SUFBTSxDQUFDLENBQUMsQ0FBQztNQUFILENBQUMsQ0FBQyxDQUFDLGFBQUgsQ0FBQyxDQUFDLENBQUM7U0FBSCxDQUFDLENBQUMsQ0FBQzs7O0FDQVQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFDO1NBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUMsQ0FBQyIsImZpbGUiOiJzY3JpcHQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVGVzdCB7XG5cbn0iLCJhcnIubWFwKHggPT4geCAqIE1VTFRJUExJRVIpOyJdfQ==
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["script.js","script2.js"],"names":[],"mappings":"IAAM,CAAC,CAAC,CAAC;MAAH,CAAC,CAAC,CAAC,aAAH,CAAC,CAAC,CAAC;SAAH,CAAC,CAAC,CAAC;;;ACAT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,CAAC","file":"script3.js","sourcesContent":["class Test {\n\n}","arr.map(x => x * MULTIPLIER);"]}
|
||||
{"version":3,"sources":["script.js","script2.js"],"names":[],"mappings":";;IAAM,CAAC,CAAC,CAAC;MAAH,CAAC,CAAC,CAAC,aAAH,CAAC,CAAC,CAAC;SAAH,CAAC,CAAC,CAAC;;;ACAT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,CAAC","file":"script3.js","sourcesContent":["class Test {\n\n}","arr.map(x => x * MULTIPLIER);"]}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * x;
|
||||
});
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["stdin"],"names":[],"mappings":"AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE;CAAC,CAAC","file":"test.js","sourcesContent":["arr.map(x => x * x);"]}
|
||||
{"version":3,"sources":["stdin"],"names":[],"mappings":";AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAC;SAAK,EAAE,EAAE;CAAC,CAAC","file":"test.js","sourcesContent":["arr.map(x => x * x);"]}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * x;
|
||||
});
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBQztTQUFLLEVBQUUsRUFBRTtDQUFDLENBQUMiLCJmaWxlIjoic3Rkb3V0Iiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiB4KTsiXX0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQUM7U0FBSyxFQUFFLEVBQUU7Q0FBQyxDQUFDIiwiZmlsZSI6InN0ZG91dCIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogeCk7Il19
|
||||
|
||||
1
test/fixtures/bin/6to5/stdin/stdout.txt
vendored
1
test/fixtures/bin/6to5/stdin/stdout.txt
vendored
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
arr.map(function(x) {
|
||||
return x * MULTIPLIER;
|
||||
});
|
||||
|
||||
2
test/fixtures/syntax/api/blacklist/actual.js
vendored
2
test/fixtures/syntax/api/blacklist/actual.js
vendored
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
constructor() {
|
||||
arr.map(x => x * x);
|
||||
arr.map(x => x * x);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
var Test = function () {
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {
|
||||
arr.map(x => x * x);
|
||||
};
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
0
test/fixtures/syntax/api/blacklist/untitled
vendored
Normal file
0
test/fixtures/syntax/api/blacklist/untitled
vendored
Normal file
2
test/fixtures/syntax/api/whitelist/actual.js
vendored
2
test/fixtures/syntax/api/whitelist/actual.js
vendored
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
constructor() {
|
||||
arr.map(x => x * x);
|
||||
arr.map(x => x * x);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class Test {
|
||||
constructor() {
|
||||
arr.map(function (x) {
|
||||
arr.map(function(x) {
|
||||
return x * x;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
function add() {
|
||||
var _arguments = arguments;
|
||||
return [1, 2, 3].map(function (i) {
|
||||
|
||||
return [1, 2, 3].map(function(i) {
|
||||
return i * _arguments[0];
|
||||
});
|
||||
}
|
||||
|
||||
add(5);
|
||||
add(5);
|
||||
@@ -1,7 +1,10 @@
|
||||
var seattlers = function () {
|
||||
"use strict";
|
||||
|
||||
var seattlers = function() {
|
||||
var _arr = [];
|
||||
countries.forEach(function (customers) {
|
||||
customers.forEach(function (c) {
|
||||
|
||||
countries.forEach(function(customers) {
|
||||
customers.forEach(function(c) {
|
||||
if (c.city == "Seattle") {
|
||||
_arr.push({
|
||||
name: c.name,
|
||||
@@ -10,5 +13,6 @@ var seattlers = function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return _arr;
|
||||
}();
|
||||
}();
|
||||
@@ -1,11 +1,13 @@
|
||||
var arr = (function () {
|
||||
"use strict";
|
||||
|
||||
var arr = function() {
|
||||
var _arr = [];
|
||||
|
||||
"abcdefgh".split("").forEach(function (x) {
|
||||
"12345678".split("").forEach(function (y) {
|
||||
"abcdefgh".split("").forEach(function(x) {
|
||||
"12345678".split("").forEach(function(y) {
|
||||
_arr.push(x + y);
|
||||
});
|
||||
});
|
||||
|
||||
return _arr;
|
||||
})();
|
||||
}();
|
||||
@@ -1,8 +1,10 @@
|
||||
var seattlers = customers.filter(function (c) {
|
||||
"use strict";
|
||||
|
||||
var seattlers = customers.filter(function(c) {
|
||||
return c.city == "Seattle";
|
||||
}).map(function (c) {
|
||||
}).map(function(c) {
|
||||
return {
|
||||
name: c.name,
|
||||
age: c.age
|
||||
};
|
||||
});
|
||||
});
|
||||
@@ -1,3 +1,5 @@
|
||||
var arr = [1, 2, 3].map(function (i) {
|
||||
"use strict";
|
||||
|
||||
var arr = [1, 2, 3].map(function(i) {
|
||||
return i * i;
|
||||
});
|
||||
});
|
||||
@@ -1,8 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
function add() {
|
||||
var _this = this;
|
||||
return [1, 2, 3].map(function (i) {
|
||||
|
||||
return [1, 2, 3].map(function(i) {
|
||||
return i * _this.multiplier;
|
||||
});
|
||||
}
|
||||
|
||||
add.call({ multiplier: 5 });
|
||||
add.call({
|
||||
multiplier: 5
|
||||
});
|
||||
@@ -8,7 +8,7 @@ function two() {
|
||||
var inner = () => arguments;
|
||||
|
||||
var another = function () {
|
||||
var inner2 = () => arguments;
|
||||
var inner2 = () => arguments;
|
||||
};
|
||||
|
||||
return [].slice.call(inner());
|
||||
@@ -35,10 +35,10 @@ five({ arguments: ["foo"] });
|
||||
|
||||
function six(obj) {
|
||||
var fn = () => {
|
||||
var fn2 = function () {
|
||||
return arguments[0];
|
||||
};
|
||||
return fn2("foobar");
|
||||
var fn2 = function () {
|
||||
return arguments[0];
|
||||
};
|
||||
return fn2("foobar");
|
||||
};
|
||||
return fn();
|
||||
}
|
||||
|
||||
@@ -1,56 +1,85 @@
|
||||
"use strict";
|
||||
|
||||
function one() {
|
||||
var _arguments = arguments;
|
||||
var inner = function () { return _arguments; };
|
||||
|
||||
var inner = function() {
|
||||
return _arguments;
|
||||
};
|
||||
|
||||
return [].slice.call(inner());
|
||||
}
|
||||
|
||||
one(1, 2);
|
||||
|
||||
function two() {
|
||||
var _arguments2 = arguments;
|
||||
var inner = function () { return _arguments2; };
|
||||
|
||||
var another = function () {
|
||||
var inner = function() {
|
||||
return _arguments2;
|
||||
};
|
||||
|
||||
var another = function() {
|
||||
var _arguments3 = arguments;
|
||||
var inner2 = function () { return _arguments3; };
|
||||
|
||||
var inner2 = function() {
|
||||
return _arguments3;
|
||||
};
|
||||
};
|
||||
|
||||
return [].slice.call(inner());
|
||||
}
|
||||
|
||||
two(1, 2);
|
||||
|
||||
function three() {
|
||||
var _arguments4 = arguments;
|
||||
var fn = function () {
|
||||
|
||||
var fn = function() {
|
||||
return _arguments4[0] + "bar";
|
||||
};
|
||||
|
||||
return fn();
|
||||
}
|
||||
|
||||
three("foo");
|
||||
|
||||
function four() {
|
||||
var _arguments5 = arguments;
|
||||
var fn = function () {
|
||||
|
||||
var fn = function() {
|
||||
return _arguments5[0].foo + "bar";
|
||||
};
|
||||
|
||||
return fn();
|
||||
}
|
||||
four({ foo: "foo" });
|
||||
|
||||
four({
|
||||
foo: "foo"
|
||||
});
|
||||
|
||||
function five(obj) {
|
||||
var fn = function () {
|
||||
var fn = function() {
|
||||
return obj.arguments[0].foo + "bar";
|
||||
};
|
||||
|
||||
return fn();
|
||||
}
|
||||
five({ arguments: ["foo"] });
|
||||
|
||||
five({
|
||||
arguments: ["foo"]
|
||||
});
|
||||
|
||||
function six(obj) {
|
||||
var fn = function () {
|
||||
var fn2 = function () {
|
||||
var fn = function() {
|
||||
var fn2 = function() {
|
||||
return arguments[0];
|
||||
};
|
||||
|
||||
return fn2("foobar");
|
||||
};
|
||||
|
||||
return fn();
|
||||
}
|
||||
six();
|
||||
|
||||
six();
|
||||
@@ -1,3 +1,5 @@
|
||||
var t = function () {
|
||||
"use strict";
|
||||
|
||||
var t = function() {
|
||||
return 5 + 5;
|
||||
};
|
||||
};
|
||||
@@ -1,2 +1,2 @@
|
||||
var t = function () {
|
||||
};
|
||||
"use strict";
|
||||
var t = function() {};
|
||||
@@ -1,3 +1,5 @@
|
||||
arr.map(function (x) {
|
||||
"use strict";
|
||||
|
||||
arr.map(function(x) {
|
||||
return x * x;
|
||||
});
|
||||
});
|
||||
@@ -1,3 +1,5 @@
|
||||
arr.map(function (i) {
|
||||
"use strict";
|
||||
|
||||
arr.map(function(i) {
|
||||
return i + 1;
|
||||
});
|
||||
});
|
||||
@@ -1,3 +1,5 @@
|
||||
var t = function (i, x) {
|
||||
"use strict";
|
||||
|
||||
var t = function(i, x) {
|
||||
return i * x;
|
||||
};
|
||||
};
|
||||
@@ -1,13 +1,13 @@
|
||||
module.exports = {
|
||||
init() {
|
||||
return new Promise((resolve, reject) => {
|
||||
MongoClient.connect(config.mongodb, (err, db) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
this.db = db;
|
||||
resolve(this);
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
MongoClient.connect(config.mongodb, (err, db) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
this.db = db;
|
||||
resolve(this);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
init: function() {
|
||||
var _this = this;
|
||||
|
||||
return new Promise(function(resolve, reject) {
|
||||
MongoClient.connect(config.mongodb, function(err, db) {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
_this.db = db;
|
||||
resolve(_this);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -1,3 +1,5 @@
|
||||
var t = function (i) {
|
||||
"use strict";
|
||||
|
||||
var t = function(i) {
|
||||
return i * 5;
|
||||
};
|
||||
};
|
||||
@@ -1,3 +1,5 @@
|
||||
var t = function (i) {
|
||||
"use strict";
|
||||
|
||||
var t = function(i) {
|
||||
return i * 5;
|
||||
};
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
nums.forEach(v => {
|
||||
if (v % 5 === 0) {
|
||||
fives.push(v);
|
||||
fives.push(v);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
nums.forEach(function (v) {
|
||||
"use strict";
|
||||
|
||||
nums.forEach(function(v) {
|
||||
if (v % 5 === 0) {
|
||||
fives.push(v);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,6 @@
|
||||
"use strict";
|
||||
var _this = this;
|
||||
var t = function (x) {
|
||||
|
||||
var t = function(x) {
|
||||
return _this.x + x;
|
||||
};
|
||||
};
|
||||
@@ -1,26 +1,26 @@
|
||||
class Test extends Foo {
|
||||
constructor() {
|
||||
woops.super.test();
|
||||
super();
|
||||
super.test();
|
||||
foob(super);
|
||||
woops.super.test();
|
||||
super();
|
||||
super.test();
|
||||
foob(super);
|
||||
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
|
||||
super.test(...arguments);
|
||||
super.test("test", ...arguments);
|
||||
super.test(...arguments);
|
||||
super.test("test", ...arguments);
|
||||
}
|
||||
|
||||
test() {
|
||||
super();
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
super();
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
}
|
||||
|
||||
static foo() {
|
||||
super();
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
super();
|
||||
super(...arguments);
|
||||
super("test", ...arguments);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"use strict";
|
||||
var _slice = Array.prototype.slice;
|
||||
|
||||
var Test = function(Foo) {
|
||||
@@ -9,11 +10,7 @@ var Test = function(Foo) {
|
||||
Foo.call.apply(Foo, [this].concat(_slice.call(arguments)));
|
||||
Foo.call.apply(Foo, [this, "test"].concat(_slice.call(arguments)));
|
||||
Foo.prototype.test.call.apply(Foo.prototype, [this].concat(_slice.call(arguments)));
|
||||
|
||||
Foo.prototype.test.call.apply(
|
||||
Foo.prototype,
|
||||
[this, "test"].concat(_slice.call(arguments))
|
||||
);
|
||||
Foo.prototype.test.call.apply(Foo.prototype, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
|
||||
Test.prototype = Object.create(Foo.prototype, {
|
||||
@@ -34,11 +31,7 @@ var Test = function(Foo) {
|
||||
value: function() {
|
||||
Foo.prototype.test.call(this);
|
||||
Foo.prototype.test.call.apply(Foo.prototype.test, [this].concat(_slice.call(arguments)));
|
||||
|
||||
Foo.prototype.test.call.apply(
|
||||
Foo.prototype.test,
|
||||
[this, "test"].concat(_slice.call(arguments))
|
||||
);
|
||||
Foo.prototype.test.call.apply(Foo.prototype.test, [this, "test"].concat(_slice.call(arguments)));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -56,4 +49,4 @@ var Test = function(Foo) {
|
||||
});
|
||||
|
||||
return Test;
|
||||
}(Foo);
|
||||
}(Foo);
|
||||
@@ -1,6 +1,6 @@
|
||||
class Test extends Foo {
|
||||
constructor() {
|
||||
super.test;
|
||||
super.test.whatever;
|
||||
super.test;
|
||||
super.test.whatever;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function(Foo) {
|
||||
var Test = function Test() {
|
||||
Foo.prototype.test;
|
||||
@@ -15,4 +17,4 @@ var Test = function(Foo) {
|
||||
|
||||
Test.__proto__ = Foo;
|
||||
return Test;
|
||||
}(Foo);
|
||||
}(Foo);
|
||||
@@ -1,10 +1,10 @@
|
||||
class Test extends Foo {
|
||||
constructor() {
|
||||
super.test.whatever();
|
||||
super.test();
|
||||
super.test.whatever();
|
||||
super.test();
|
||||
}
|
||||
|
||||
static test() {
|
||||
return super.wow();
|
||||
return super.wow();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
var Test = function(Foo) {
|
||||
var Test = function Test() {
|
||||
Foo.prototype.test.whatever();
|
||||
Foo.prototype.test.call(this);
|
||||
};
|
||||
|
||||
Test.prototype = Object.create(Foo.prototype, {
|
||||
constructor: {
|
||||
value: Test,
|
||||
@@ -11,7 +14,9 @@ var Test = function(Foo) {
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
|
||||
Test.__proto__ = Foo;
|
||||
|
||||
Object.defineProperties(Test, {
|
||||
test: {
|
||||
writable: true,
|
||||
@@ -21,5 +26,6 @@ var Test = function(Foo) {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Test;
|
||||
}(Foo);
|
||||
}(Foo);
|
||||
@@ -1,11 +1,11 @@
|
||||
class Test {
|
||||
constructor() {
|
||||
this.state = "test";
|
||||
this.state = "test";
|
||||
}
|
||||
}
|
||||
|
||||
class Foo extends Bar {
|
||||
constructor() {
|
||||
this.state = "test";
|
||||
this.state = "test";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
var Test = function () {
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {
|
||||
this.state = "test";
|
||||
};
|
||||
|
||||
return Test;
|
||||
}();
|
||||
|
||||
@@ -21,4 +24,4 @@ var Foo = function(Bar) {
|
||||
|
||||
Foo.__proto__ = Bar;
|
||||
return Foo;
|
||||
}(Bar);
|
||||
}(Bar);
|
||||
@@ -1,8 +1,8 @@
|
||||
class Test {
|
||||
get test() {
|
||||
return 5 + 5;
|
||||
return 5 + 5;
|
||||
}
|
||||
set test(val) {
|
||||
this._test = val;
|
||||
this._test = val;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
var Test = function () {
|
||||
var Test = function Test() { };
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
|
||||
Object.defineProperties(Test.prototype, {
|
||||
test: {
|
||||
get: function () {
|
||||
get: function() {
|
||||
return 5 + 5;
|
||||
},
|
||||
set: function (val) {
|
||||
|
||||
set: function(val) {
|
||||
this._test = val;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
get test() {
|
||||
return 5 + 5;
|
||||
return 5 + 5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
var Test = function () {
|
||||
var Test = function Test() { };
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
|
||||
Object.defineProperties(Test.prototype, {
|
||||
test: {
|
||||
get: function () {
|
||||
get: function() {
|
||||
return 5 + 5;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
test() {
|
||||
return 5 + 5;
|
||||
return 5 + 5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
var Test = function () {
|
||||
var Test = function Test() { };
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
|
||||
Object.defineProperties(Test.prototype, {
|
||||
test: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
|
||||
value: function() {
|
||||
return 5 + 5;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
set test(val) {
|
||||
this._test = val;
|
||||
this._test = val;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
var Test = function () {
|
||||
var Test = function Test() { };
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
|
||||
Object.defineProperties(Test.prototype, {
|
||||
test: {
|
||||
set: function (val) {
|
||||
set: function(val) {
|
||||
this._test = val;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,4 +1,6 @@
|
||||
var Test = function () {
|
||||
var Test = function Test() { };
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {};
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,11 +1,11 @@
|
||||
var BaseView = class BaseView {
|
||||
constructor() {
|
||||
this.autoRender = true;
|
||||
this.autoRender = true;
|
||||
}
|
||||
}
|
||||
|
||||
var BaseView = class {
|
||||
constructor() {
|
||||
this.autoRender = true;
|
||||
this.autoRender = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
var BaseView = function () {
|
||||
"use strict";
|
||||
|
||||
var BaseView = function() {
|
||||
var BaseView = function BaseView() {
|
||||
this.autoRender = true;
|
||||
};
|
||||
@@ -6,9 +8,10 @@ var BaseView = function () {
|
||||
return BaseView;
|
||||
}();
|
||||
|
||||
var BaseView = function () {
|
||||
var _class = function () {
|
||||
var BaseView = function() {
|
||||
var _class = function() {
|
||||
this.autoRender = true;
|
||||
};
|
||||
|
||||
return _class;
|
||||
}();
|
||||
}();
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var A = function() {
|
||||
var A = function A() {};
|
||||
|
||||
@@ -14,4 +16,4 @@ var A = function() {
|
||||
});
|
||||
|
||||
return A;
|
||||
}();
|
||||
}();
|
||||
@@ -1,7 +1,10 @@
|
||||
var BaseController = function (Chaplin) {
|
||||
"use strict";
|
||||
|
||||
var BaseController = function(Chaplin) {
|
||||
var BaseController = function BaseController() {
|
||||
Chaplin.Controller.apply(this, arguments);
|
||||
};
|
||||
|
||||
BaseController.prototype = Object.create(Chaplin.Controller.prototype, {
|
||||
constructor: {
|
||||
value: BaseController,
|
||||
@@ -10,14 +13,16 @@ var BaseController = function (Chaplin) {
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
|
||||
BaseController.__proto__ = Chaplin.Controller;
|
||||
return BaseController;
|
||||
}(Chaplin);
|
||||
|
||||
var BaseController2 = function (Chaplin) {
|
||||
var BaseController2 = function(Chaplin) {
|
||||
var BaseController2 = function BaseController2() {
|
||||
Chaplin.Controller.Another.apply(this, arguments);
|
||||
};
|
||||
|
||||
BaseController2.prototype = Object.create(Chaplin.Controller.Another.prototype, {
|
||||
constructor: {
|
||||
value: BaseController2,
|
||||
@@ -26,6 +31,7 @@ var BaseController2 = function (Chaplin) {
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
|
||||
BaseController2.__proto__ = Chaplin.Controller.Another;
|
||||
return BaseController2;
|
||||
}(Chaplin);
|
||||
}(Chaplin);
|
||||
@@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var Q = function(_ref) {
|
||||
var Q = function Q() {
|
||||
_ref.apply(this, arguments);
|
||||
@@ -11,7 +13,7 @@ var Q = function(_ref) {
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
Q.__proto__ = _ref;
|
||||
|
||||
Q.__proto__ = _ref;
|
||||
return Q;
|
||||
}(function() {});
|
||||
}(function() {});
|
||||
@@ -1,7 +1,10 @@
|
||||
var Test = function (Foo) {
|
||||
"use strict";
|
||||
|
||||
var Test = function(Foo) {
|
||||
var Test = function Test() {
|
||||
Foo.apply(this, arguments);
|
||||
};
|
||||
|
||||
Test.prototype = Object.create(Foo.prototype, {
|
||||
constructor: {
|
||||
value: Test,
|
||||
@@ -10,6 +13,7 @@ var Test = function (Foo) {
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
|
||||
Test.__proto__ = Foo;
|
||||
return Test;
|
||||
}(Foo);
|
||||
}(Foo);
|
||||
@@ -1,5 +1,5 @@
|
||||
class Test {
|
||||
constructor() {
|
||||
super.hasOwnProperty("test");
|
||||
super.hasOwnProperty("test");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
var Test = function () {
|
||||
"use strict";
|
||||
|
||||
var Test = function() {
|
||||
var Test = function Test() {
|
||||
Function.prototype.hasOwnProperty.call(this, "test");
|
||||
};
|
||||
|
||||
return Test;
|
||||
}();
|
||||
}();
|
||||
@@ -1,5 +1,3 @@
|
||||
"use strict";
|
||||
wow;
|
||||
/*
|
||||
um yeah lol
|
||||
*/
|
||||
test.wow();
|
||||
test.wow();
|
||||
@@ -1,3 +1,3 @@
|
||||
"use strict";
|
||||
wow;
|
||||
// um yeah lol
|
||||
test.wow();
|
||||
test.wow();
|
||||
@@ -1,4 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
foo(function(_ref) {
|
||||
_ref[bar] = "foobar";
|
||||
return _ref;
|
||||
}({}));
|
||||
}({}));
|
||||
@@ -1,4 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
foo = function(_foo) {
|
||||
_foo[bar] = "foobar";
|
||||
return _foo;
|
||||
}({});
|
||||
}({});
|
||||
@@ -1,5 +1,5 @@
|
||||
var obj = {
|
||||
[foobar]() {
|
||||
return "foobar";
|
||||
return "foobar";
|
||||
}
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user