add test262
This commit is contained in:
parent
fa42b076a7
commit
c420d1ffc3
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -4,3 +4,6 @@
|
|||||||
[submodule "vendor/regenerator"]
|
[submodule "vendor/regenerator"]
|
||||||
path = vendor/regenerator
|
path = vendor/regenerator
|
||||||
url = https://github.com/facebook/regenerator
|
url = https://github.com/facebook/regenerator
|
||||||
|
[submodule "vendor/test262"]
|
||||||
|
path = vendor/test262
|
||||||
|
url = https://github.com/tc39/test262
|
||||||
|
|||||||
5
Makefile
5
Makefile
@ -37,6 +37,11 @@ test: lint
|
|||||||
$(MOCHA_CMD)
|
$(MOCHA_CMD)
|
||||||
make test-clean
|
make test-clean
|
||||||
|
|
||||||
|
test-simple:
|
||||||
|
# excludes test262
|
||||||
|
export SIMPLE_6TO5_TESTS=1
|
||||||
|
make test
|
||||||
|
|
||||||
test-cov:
|
test-cov:
|
||||||
rm -rf coverage
|
rm -rf coverage
|
||||||
node $(ISTANBUL_CMD) $(MOCHA_CMD) --
|
node $(ISTANBUL_CMD) $(MOCHA_CMD) --
|
||||||
|
|||||||
55
test/test262.js
Normal file
55
test/test262.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
if (process.env.SIMPLE_6TO5_TESTS) return;
|
||||||
|
|
||||||
|
var transform = require("../lib/6to5/transformation/transform");
|
||||||
|
var readdir = require("fs-readdir-recursive");
|
||||||
|
var path = require("path");
|
||||||
|
var fs = require("fs");
|
||||||
|
var _ = require("lodash");
|
||||||
|
|
||||||
|
var test262Loc = __dirname + "/../vendor/test262";
|
||||||
|
if (!fs.existsSync(traceurLoc)) {
|
||||||
|
console.error("No vendor/test262 - run `make bootstrap`");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
var read = function (loc) {
|
||||||
|
return readdir(loc).map(function (filename) {
|
||||||
|
return path.join(loc, filename);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var exec = function (loc) {
|
||||||
|
try {
|
||||||
|
var file = fs.readFileSync(loc, "utf8");
|
||||||
|
|
||||||
|
// this normalises syntax and early runtime reference errors
|
||||||
|
// SyntaxError: var null;
|
||||||
|
// ReferenceError: 1++; (runtime)
|
||||||
|
var lazyError = /negative: (\S+)/.test(file);
|
||||||
|
|
||||||
|
var compiled = transform(file, {
|
||||||
|
filename: loc,
|
||||||
|
blacklist: ["useStrict"]
|
||||||
|
});
|
||||||
|
|
||||||
|
global.eval(compiled);
|
||||||
|
} catch (err) {
|
||||||
|
if (err && lazyError && err instanceof SyntaxError) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// harness
|
||||||
|
var harness = read(test262Loc + "/harness");
|
||||||
|
_.each(harness, exec);
|
||||||
|
|
||||||
|
// tests!
|
||||||
|
var tests = read(test262Loc + "/test");
|
||||||
|
_.each(tests, function (loc) {
|
||||||
|
test(loc, function () {
|
||||||
|
exec(loc);
|
||||||
|
});
|
||||||
|
});
|
||||||
1
vendor/test262
vendored
Submodule
1
vendor/test262
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit d075338699cc8eaf123d5f5491f0d68116ee224a
|
||||||
Loading…
x
Reference in New Issue
Block a user