diff --git a/test/_helper.js b/test/_helper.js index 78ff16fe0b..4e9274ea77 100644 --- a/test/_helper.js +++ b/test/_helper.js @@ -47,7 +47,7 @@ exports.get = function (entryName) { function push(taskName, taskDir) { // tracuer error tests - if (taskName.indexOf("Error_") === 0) return; + if (taskName.indexOf("Error_") >= 0) return; var actualLocAlias = suiteName + "/" + taskName + "/actual.js"; var expectLocAlias = suiteName + "/" + taskName + "/expected.js"; @@ -97,12 +97,12 @@ exports.get = function (entryName) { // traceur checks var shouldSkip = function (code) { - return code.indexOf("// Error:") === 0 || code.indexOf("// Skip.") === 0; + return code.indexOf("// Error:") >= 0 || code.indexOf("// Skip.") >= 0; }; if (shouldSkip(test.actual.code) || shouldSkip(test.exec.code)) { return; - } else if (test.exec.code.indexOf("// Async.")) { + } else if (test.exec.code.indexOf("// Async.") >= 0) { //test.options.asyncExec = true; } diff --git a/test/_transformation-helper.js b/test/_transformation-helper.js index 2cb148e236..a9620445cb 100644 --- a/test/_transformation-helper.js +++ b/test/_transformation-helper.js @@ -40,16 +40,18 @@ var run = function (task, done) { execCode = result.code; try { - var requireRelative; - if (opts.emulateNodeModule) { - var mod = new Module(exec.loc); - requireRelative = function (loc) { - return mod.require(loc); - }; - } + var fakeRequire = function (loc) { + if (loc === "../../../src/runtime/polyfills/Number.js") { + return Number; + } else if (loc === "../../../src/runtime/polyfills/Math.js") { + return Math; + } else { + return require(path.resolve(exec.loc, "..", loc)); + } + }; var fn = new Function("require", "done", execCode); - fn(requireRelative, chai.assert, done); + fn.call(global, fakeRequire, chai.assert, done); } catch (err) { err.message = exec.loc + ": " + err.message; err.message += util.codeFrame(execCode); @@ -83,6 +85,10 @@ var run = function (task, done) { }; module.exports = function (name, opts) { + if (opts && opts.requireHook) { + require("6to5/register")(opts); + } + _.each(helper.get(name), function (testSuite) { suite(name + "/" + testSuite.title, function () { _.each(testSuite.tests, function (task) { diff --git a/test/traceur.js b/test/traceur.js index b836f00b99..2dd598ffe8 100644 --- a/test/traceur.js +++ b/test/traceur.js @@ -1,5 +1,5 @@ require("./_transformation-helper")("traceur", { blacklist: ["useStrict"], - emulateNodeModule: true, + requireHook: true, experimental: true });