update traceur test runner

This commit is contained in:
Sebastian McKenzie 2015-02-08 16:19:05 +11:00
parent 6fd7f9868e
commit 055545980c
2 changed files with 44 additions and 17 deletions

View File

@ -16,6 +16,14 @@ global.assertNoOwnProperties = function (obj) {
assert.equal(Object.getOwnPropertyNames(obj).length, 0);
};
global.assertHasOwnProperty = function () {
};
global.assertLacksOwnProperty = function () {
};
global.assertArrayEquals = assert.deepEqual;
global.assert = chai.assert;
global.chai = chai;
@ -129,12 +137,7 @@ module.exports = function (suiteOpts, taskOpts, dynamicOpts) {
var runTest = function (done) {
var runTask = function () {
try {
run(task, done);
} catch (err) {
if (task.options.after) task.options.after();
throw err;
}
run(task, done);
};
_.extend(task.options, taskOpts);

View File

@ -10,6 +10,18 @@ require("./_transformation-helper")({
loc: __dirname + "/../vendor/traceur/test/feature",
ignoreSuites: [
"Modules",
"Classes",
// these are the responsibility of regenerator
"AsyncFunctions",
"Yield",
// these are the responsibility of core-js
"StringExtras",
"ArrayExtras",
"Collections",
// these are all internal traceur tests or non-standard features
"ObjectMixin",
"Annotations",
@ -24,9 +36,24 @@ require("./_transformation-helper")({
],
ignoreTasks: [
// core.js doesn't support due to a perf hit and having to override a lot
// of native methods
// these are the responsibility of core-js
"Symbol/GetOwnPropertySymbols",
"Spread/Type",
"Symbol/ObjectModel",
"Symbol/Object",
"Spread/NoIterator",
"Destructuring/Rest",
"Destructuring/Empty",
// traceur uses an old version of regexpu
"RegularExpression/Simple",
// class methods are still enumerable in traceur
"NumericLiteral/Simple",
"Classes/Method",
// Object.mixin didn't make it into ES6
"ObjectMixin",
// traceur doesn't name methods and has an incorrect test asserting that
// they have no names
@ -38,20 +65,17 @@ require("./_transformation-helper")({
"Syntax/UseStrictLineContinuation",
// experimental es7 - the spec hasn't been finalized yet
// these both fail because of filter between blocks
// these both fail because of filters between blocks
"ArrayComprehension/Simple",
"GeneratorComprehension/Simple",
// yield has been added as a keyword in ES6 so this test is actually incorrect
"Yield/YieldIdentifier"
// yield has been added as a keyword in ES6
"Yield/YieldIdentifier",
"Syntax/StrictKeywords"
]
}, {
optional: ["typeofSymbol"],
experimental: true,
after: function () {
// StringExtras/StarsWith
delete Object.prototype[1];
}
optional: ["spec.typeofSymbol"],
experimental: true
}, function (opts, task) {
if (!_.contains(task.exec.loc, "module.js")) {
opts.blacklist = ["useStrict"];