i made the javascripts faster with a transformer prepass to check what transformers actually have to be ran

This commit is contained in:
Sebastian McKenzie
2015-02-04 12:56:34 +11:00
parent ffc9244f88
commit 7d950cd60a
30 changed files with 223 additions and 95 deletions

View File

@@ -4,6 +4,7 @@ require("./_helper").assertVendor("test262");
var transform = require("../lib/6to5/transformation");
var readdir = require("fs-readdir-recursive");
var helper = require("./_helper");
var path = require("path");
var fs = require("fs");
var _ = require("lodash");
@@ -16,7 +17,7 @@ var read = function (loc) {
});
};
var exec = function (loc) {
var check = function (loc) {
try {
var file = fs.readFileSync(loc, "utf8");
@@ -26,25 +27,21 @@ var exec = function (loc) {
// ReferenceError: 1++; (runtime)
var lazyError = /negative: (\S+)/.test(file);
var compiled = transform(file, {
transform(file, {
filename: loc,
blacklist: ["useStrict"]
blacklist: ["useStrict"],
_anal: true
});
global.eval(compiled);
} catch (err) {
if (err && lazyError && err instanceof SyntaxError) {
return;
} else {
err.stack = loc + ": " + err.stack;
throw err;
}
}
};
// harness
var harness = read(test262Loc + "/harness");
_.each(harness, exec);
// tests!
var tests = read(test262Loc + "/test");
_.each(tests, function (loc) {
@@ -52,6 +49,6 @@ _.each(tests, function (loc) {
alias = alias.replace(/\.([^\.]+)$/g, "");
test(alias, function () {
this.timeout(0);
exec(loc);
check(loc);
});
});