Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1622d2498d | ||
|
|
b76e6f8e5b | ||
|
|
beac006832 | ||
|
|
20d7603c0b | ||
|
|
24b13c5e49 | ||
|
|
9e21074e88 | ||
|
|
9a825bced7 | ||
|
|
fcb78436c6 | ||
|
|
bb30a64f8d | ||
|
|
b483c16fe2 | ||
|
|
569f046045 | ||
|
|
a8702be756 | ||
|
|
0995cc3f4e |
@@ -18,6 +18,8 @@ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog.
|
||||
* **Bug Fix**
|
||||
* Fix class property initializers with `undefined` values not being correctly writable.
|
||||
* Fix self inferring generators incorrectly causing a stack error.
|
||||
* Fix default export specifiers not triggering AMD `module` argument inclusion.
|
||||
* Fix assignments not having their module references properly remapped.
|
||||
* **Internal**
|
||||
* Upgrade to latest `acorn`.
|
||||
* **Polish**
|
||||
|
||||
1
Makefile
1
Makefile
@@ -114,5 +114,4 @@ bootstrap:
|
||||
npm link
|
||||
cd packages/babel-cli && npm install && npm link && npm link babel-core
|
||||
git submodule update --init
|
||||
cd vendor/regenerator && npm install
|
||||
cd vendor/compat-table && npm install object-assign
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "babel-core",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "5.1.9",
|
||||
"version": "5.1.10",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"repository": "babel/babel",
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "babel",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "5.1.8",
|
||||
"version": "5.1.9",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"repository": "babel/babel",
|
||||
"preferGlobal": true,
|
||||
"dependencies": {
|
||||
"babel-core": "^5.1.8",
|
||||
"babel-core": "^5.1.9",
|
||||
"chokidar": "^1.0.0",
|
||||
"commander": "^2.6.0",
|
||||
"fs-readdir-recursive": "^0.1.0",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "babel-runtime",
|
||||
"description": "babel selfContained runtime",
|
||||
"version": "5.1.8",
|
||||
"version": "5.1.9",
|
||||
"repository": "babel/babel",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"dependencies": {
|
||||
|
||||
@@ -9,41 +9,9 @@
|
||||
|
||||
function makePredicate(words) {
|
||||
words = words.split(" ")
|
||||
let f = "", cats = []
|
||||
out: for (let i = 0; i < words.length; ++i) {
|
||||
for (let j = 0; j < cats.length; ++j)
|
||||
if (cats[j][0].length == words[i].length) {
|
||||
cats[j].push(words[i])
|
||||
continue out
|
||||
}
|
||||
cats.push([words[i]])
|
||||
return function(str) {
|
||||
return words.indexOf(str) >= 0
|
||||
}
|
||||
function compareTo(arr) {
|
||||
if (arr.length == 1) return f += "return str === " + JSON.stringify(arr[0]) + ";"
|
||||
f += "switch(str){"
|
||||
for (let i = 0; i < arr.length; ++i) f += "case " + JSON.stringify(arr[i]) + ":"
|
||||
f += "return true}return false;"
|
||||
}
|
||||
|
||||
// When there are more than three length categories, an outer
|
||||
// switch first dispatches on the lengths, to save on comparisons.
|
||||
|
||||
if (cats.length > 3) {
|
||||
cats.sort((a, b) => b.length - a.length)
|
||||
f += "switch(str.length){"
|
||||
for (let i = 0; i < cats.length; ++i) {
|
||||
let cat = cats[i]
|
||||
f += "case " + cat[0].length + ":"
|
||||
compareTo(cat)
|
||||
}
|
||||
f += "}"
|
||||
|
||||
// Otherwise, simply generate a flat `switch` statement.
|
||||
|
||||
} else {
|
||||
compareTo(words)
|
||||
}
|
||||
return new Function("str", f)
|
||||
}
|
||||
|
||||
// Reserved word lists for various dialects of the language
|
||||
|
||||
@@ -156,16 +156,3 @@ export default function (opts = {}) {
|
||||
|
||||
extend(transformOpts, opts);
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
try {
|
||||
var runtimePackage = require("babel-runtime/package");
|
||||
var version = require("../../../../package").version;
|
||||
if (runtimePackage.version !== version) {
|
||||
throw new ReferenceError(`The verison of babel-runtime of ${runtimePackage.runtime} that you have installed does not match the babel verison of ${version}`);
|
||||
}
|
||||
} catch (err) {
|
||||
if (err.code !== "MODULE_NOT_FOUND") throw err;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import Logger from "./logger";
|
||||
import parse from "../../helpers/parse";
|
||||
import Scope from "../../traversal/scope";
|
||||
import slash from "slash";
|
||||
import clone from "lodash/lang/clone";
|
||||
import * as util from "../../util";
|
||||
import path from "path";
|
||||
import each from "lodash/collection/each";
|
||||
@@ -85,7 +86,10 @@ export default class File {
|
||||
"default-props"
|
||||
];
|
||||
|
||||
static soloHelpers = [];
|
||||
static soloHelpers = [
|
||||
"ludicrous-proxy-create",
|
||||
"ludicrous-proxy-directory"
|
||||
];
|
||||
|
||||
static options = require("./options");
|
||||
|
||||
@@ -117,7 +121,9 @@ export default class File {
|
||||
throw new Error("Deprecated option " + key + ": " + option.deprecated);
|
||||
}
|
||||
|
||||
if (val == null) val = option.default || val;
|
||||
if (val == null) {
|
||||
val = clone(option.default);
|
||||
}
|
||||
|
||||
var optionParser = optionParsers[option.type];
|
||||
if (optionParser) val = optionParser(key, val);
|
||||
|
||||
@@ -15,6 +15,11 @@
|
||||
"hidden": true
|
||||
},
|
||||
|
||||
"extra": {
|
||||
"hidden": true,
|
||||
"default": {}
|
||||
},
|
||||
|
||||
"moduleId": {
|
||||
"description": "specify a custom name for module ids",
|
||||
"type": "string"
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
(function (proxy, directory) {
|
||||
directory.push(proxy);
|
||||
return proxy;
|
||||
})
|
||||
@@ -0,0 +1 @@
|
||||
[];
|
||||
@@ -5,6 +5,7 @@ export var metadata = {
|
||||
optional: true
|
||||
};
|
||||
|
||||
// foo in bar
|
||||
export function BinaryExpression(node) {
|
||||
if (node.operator === "in") {
|
||||
return util.template("ludicrous-in", {
|
||||
@@ -14,6 +15,7 @@ export function BinaryExpression(node) {
|
||||
}
|
||||
}
|
||||
|
||||
// { 1: "foo" }
|
||||
export function Property(node) {
|
||||
var key = node.key;
|
||||
if (t.isLiteral(key) && typeof key.value === "number") {
|
||||
@@ -21,9 +23,44 @@ export function Property(node) {
|
||||
}
|
||||
}
|
||||
|
||||
// /foobar/g
|
||||
export function Literal(node) {
|
||||
if (node.regex) {
|
||||
node.regex.pattern = "foobar";
|
||||
node.regex.flags = "";
|
||||
}
|
||||
}
|
||||
|
||||
// foo.bar
|
||||
export function MemberExpression(node) {
|
||||
|
||||
}
|
||||
|
||||
// Object.setPrototypeOf
|
||||
// Object.preventExtensions
|
||||
// Object.keys
|
||||
// Object.isExtensible
|
||||
// Object.getOwnPropertyDescriptor
|
||||
// Object.defineProperty
|
||||
export function CallExpression(node) {
|
||||
|
||||
}
|
||||
|
||||
// delete foo.bar
|
||||
export function UnaryExpression(node) {
|
||||
|
||||
}
|
||||
|
||||
// foo.bar = bar;
|
||||
export function AssignmentExpression(node) {
|
||||
|
||||
}
|
||||
|
||||
// new Proxy
|
||||
export function NewExpression(node, parent, scope, file) {
|
||||
if (this.get("callee").isIdentifier({ name: "Proxy" })) {
|
||||
return t.callExpression(file.addHelper("proxy-create"), [node.arguments[0], file.addHelper("proxy-directory")]);
|
||||
} else {
|
||||
// possible proxy constructor
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ export default class PathHoister {
|
||||
run() {
|
||||
var node = this.path.node;
|
||||
if (node._hoisted) return;
|
||||
this.path._hoisted = true;
|
||||
node._hoisted = true;
|
||||
|
||||
this.path.traverse(referenceVisitor, this);
|
||||
if (this.foundIncompatible) return;
|
||||
|
||||
@@ -178,7 +178,6 @@ export default class TraversalPath {
|
||||
} else if (this.isStatementOrBlock()) {
|
||||
if (this.node) nodes.unshift(this.node);
|
||||
this.container[this.key] = t.blockStatement(nodes);
|
||||
this.replaceExpressionWithStatements(nodes);
|
||||
} else {
|
||||
throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
require("../../lib/babel/api/node");
|
||||
|
||||
var buildExternalHelpers = require("../../lib/babel/tools/build-external-helpers");
|
||||
var transform = require("../../lib/babel/transformation");
|
||||
var assert = require("assert");
|
||||
@@ -21,6 +23,15 @@ suite("api", function () {
|
||||
}, /Unknown helper foob/);
|
||||
});
|
||||
|
||||
test("extra options", function () {
|
||||
var file1 = new File({ extra: { foo: "bar" } });
|
||||
assert.equal(file1.opts.extra.foo, "bar");
|
||||
|
||||
var file2 = new File;
|
||||
var file3 = new File;
|
||||
assert.ok(file2.opts.extra !== file3.opts.extra);
|
||||
});
|
||||
|
||||
suite("buildExternalHelpers", function () {
|
||||
test("all", function () {
|
||||
var script = buildExternalHelpers();
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"optional": ["ludicrous"]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
var proxied = function(){};
|
||||
var passed = false;
|
||||
var host = {
|
||||
method: new Proxy(proxied, {
|
||||
apply: function (t, thisArg, args) {
|
||||
passed = t === proxied && thisArg === host && args + "" === "foo,bar";
|
||||
}
|
||||
})
|
||||
};
|
||||
host.method("foo", "bar");
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,9 @@
|
||||
var proxied = function(){};
|
||||
var passed = false;
|
||||
new new Proxy(proxied, {
|
||||
construct: function (t, args) {
|
||||
passed = t === proxied && args + "" === "foo,bar";
|
||||
return {};
|
||||
}
|
||||
})("foo","bar");
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,13 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
Object.defineProperty(
|
||||
new Proxy(proxied, {
|
||||
defineProperty: function (t, k, d) {
|
||||
passed = t === proxied && k === "foo" && d.value === 5;
|
||||
return true;
|
||||
}
|
||||
}),
|
||||
"foo",
|
||||
{ value: 5, configurable: true }
|
||||
);
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,8 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
delete new Proxy(proxied, {
|
||||
deleteProperty: function (t, k) {
|
||||
passed = t === proxied && k === "foo";
|
||||
}
|
||||
}).foo;
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,13 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
for (var i in
|
||||
new Proxy(proxied, {
|
||||
enumerate: function (t) {
|
||||
passed = t === proxied;
|
||||
return {
|
||||
next: function(){ return { done: true, value: null };}
|
||||
};
|
||||
}
|
||||
})
|
||||
) { }
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,7 @@
|
||||
var proxied = { };
|
||||
var proxy = Object.create(new Proxy(proxied, {
|
||||
get: function (t, k, r) {
|
||||
return t === proxied && k === "foo" && r === proxy && 5;
|
||||
}
|
||||
}));
|
||||
assert.equal(proxy.foo, 5);
|
||||
@@ -0,0 +1,7 @@
|
||||
var proxied = {};
|
||||
var proxy = new Proxy(proxied, {
|
||||
get: function (t, k, r) {
|
||||
return t === proxied && k === "foo" && r === proxy && 5;
|
||||
}
|
||||
});
|
||||
assert.equal(proxy.foo, 5);
|
||||
@@ -0,0 +1,14 @@
|
||||
var proxied = {};
|
||||
var fakeDesc = { value: "foo", configurable: true };
|
||||
var returnedDesc = Object.getOwnPropertyDescriptor(
|
||||
new Proxy(proxied, {
|
||||
getOwnPropertyDescriptor: function (t, k) {
|
||||
return t === proxied && k === "foo" && fakeDesc;
|
||||
}
|
||||
}),
|
||||
"foo"
|
||||
);
|
||||
assert.equal(returnedDesc.value, fakeDesc.value);
|
||||
assert.equal(returnedDesc.configurable, fakeDesc.configurable);
|
||||
assert.equal(returnedDesc.writable, false);
|
||||
assert.equal(returnedDesc.enumerable, false);
|
||||
@@ -0,0 +1,8 @@
|
||||
var proxied = {};
|
||||
var fakeProto = {};
|
||||
var proxy = new Proxy(proxied, {
|
||||
getPrototypeOf: function (t) {
|
||||
return t === proxied && fakeProto;
|
||||
}
|
||||
});
|
||||
assert.equal(Object.getPrototypeOf(proxy), fakeProto);
|
||||
@@ -0,0 +1,8 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
"foo" in Object.create(new Proxy(proxied, {
|
||||
has: function (t, k) {
|
||||
passed = t === proxied && k === "foo";
|
||||
}
|
||||
}));
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,8 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
"foo" in new Proxy(proxied, {
|
||||
has: function (t, k) {
|
||||
passed = t === proxied && k === "foo";
|
||||
}
|
||||
});
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,10 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
Object.isExtensible(
|
||||
new Proxy(proxied, {
|
||||
isExtensible: function (t) {
|
||||
passed = t === proxied; return true;
|
||||
}
|
||||
})
|
||||
);
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,11 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
Object.keys(
|
||||
new Proxy(proxied, {
|
||||
ownKeys: function (t) {
|
||||
passed = t === proxied; return [];
|
||||
}
|
||||
})
|
||||
);
|
||||
assert.ok(passed);
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
Object.preventExtensions(
|
||||
new Proxy(proxied, {
|
||||
preventExtensions: function (t) {
|
||||
passed = t === proxied;
|
||||
return Object.preventExtensions(proxied);
|
||||
}
|
||||
})
|
||||
);
|
||||
assert.ok(passed);
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
var proxy = Object.create(new Proxy(proxied, {
|
||||
set: function (t, k, v, r) {
|
||||
passed = t === proxied && k + v === "foobar" && r === proxy;
|
||||
}
|
||||
}));
|
||||
proxy.foo = "bar";
|
||||
assert.ok(passed);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
var proxied = {};
|
||||
var passed = false;
|
||||
var proxy = new Proxy(proxied, {
|
||||
set: function (t, k, v, r) {
|
||||
passed = t === proxied && k + v === "foobar" && r === proxy;
|
||||
}
|
||||
});
|
||||
proxy.foo = "bar";
|
||||
assert.ok(passed);
|
||||
@@ -0,0 +1,13 @@
|
||||
var proxied = {};
|
||||
var newProto = {};
|
||||
var passed = false;
|
||||
Object.setPrototypeOf(
|
||||
new Proxy(proxied, {
|
||||
setPrototypeOf: function (t, p) {
|
||||
passed = t === proxied && p === newProto;
|
||||
return true;
|
||||
}
|
||||
}),
|
||||
newProto
|
||||
);
|
||||
assert.ok(passed);
|
||||
@@ -1,24 +0,0 @@
|
||||
if (!process.env.ALL_BABEL_TESTS) return;
|
||||
|
||||
require("./_helper").assertVendor("regenerator");
|
||||
|
||||
var transform = require("../lib/babel/transformation");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
var regeneratorLoc = __dirname + "/../vendor/regenerator";
|
||||
|
||||
suite("regenerator", function () {
|
||||
setup(function () {
|
||||
require("../../register")({
|
||||
blacklist: ["strict"],
|
||||
stage: 0
|
||||
});
|
||||
});
|
||||
|
||||
_.each(["tests", "async"], function (filename) {
|
||||
var loc = regeneratorLoc + "/test/" + filename + ".es6.js";
|
||||
var code = fs.readFileSync(loc, "utf8");
|
||||
require(loc);
|
||||
});
|
||||
});
|
||||
1
vendor/regenerator
vendored
1
vendor/regenerator
vendored
Submodule vendor/regenerator deleted from ad87279a24
Reference in New Issue
Block a user