author | David Rajchenbach-Teller <dteller@mozilla.com> |
Fri, 17 Oct 2014 10:17:37 -0400 | |
changeset 213384 | 09fbfd40895ad06d6168f1288dbb397969800f0d |
parent 213383 | a2e06eeccb2003db7127377adae625f53fdfbbd5 |
child 213385 | c2df2cbac90fd36b0bf160b975f6439763a38203 |
push id | 27748 |
push user | ryanvm@gmail.com |
push date | Fri, 31 Oct 2014 20:14:33 +0000 |
treeherder | mozilla-central@12ac66e2c016 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | ted |
bugs | 1083989 |
milestone | 36.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/testing/mochitest/browser-test.js +++ b/testing/mochitest/browser-test.js @@ -139,17 +139,16 @@ function Tester(aTests, aDumper, aCallba /*known*/tolerate, /*stack*/stack)); }.bind(this); } Tester.prototype = { EventUtils: {}, SimpleTest: {}, Task: null, - Promise: null, Assert: null, repeat: 0, runUntilFailure: false, checker: null, currentTestIndex: -1, lastStartTime: null, openedWindows: null, @@ -582,17 +581,16 @@ Tester.prototype = { let currentScope = this.currentTest.scope = new testScope(this, this.currentTest, this.currentTest.expected); let currentTest = this.currentTest; // Import utils in the test scope. this.currentTest.scope.EventUtils = this.EventUtils; this.currentTest.scope.SimpleTest = this.SimpleTest; this.currentTest.scope.gTestPath = this.currentTest.path; this.currentTest.scope.Task = this.Task; - this.currentTest.scope.Promise = this.Promise; // Pass a custom report function for mochitest style reporting. this.currentTest.scope.Assert = new this.Assert(function(err, message, stack) { let res; if (err) { res = new testResult(false, err.message, err.stack, false, err.stack); } else { res = new testResult(true, message, "", false, stack); } @@ -638,30 +636,31 @@ Tester.prototype = { this.Promise.Debugging.flushUncaughtErrors(); // Run the test this.lastStartTime = Date.now(); if (this.currentTest.scope.__tasks) { // This test consists of tasks, added via the `add_task()` API. if ("test" in this.currentTest.scope) { throw "Cannot run both a add_task test and a normal test at the same time."; } - this.Task.spawn(function() { + let Promise = this.Promise; + this.Task.spawn(function*() { let task; while ((task = this.__tasks.shift())) { this.SimpleTest.info("Entering test " + task.name); try { yield task(); } catch (ex) { let isExpected = !!this.SimpleTest.isExpectingUncaughtException(); let stack = (typeof ex == "object" && "stack" in ex)?ex.stack:null; let name = "Uncaught exception"; let result = new testResult(isExpected, name, ex, false, stack); currentTest.addResult(result); } - this.Promise.Debugging.flushUncaughtErrors(); + Promise.Debugging.flushUncaughtErrors(); this.SimpleTest.info("Leaving test " + task.name); } this.finish(); }.bind(currentScope)); } else if ("generatorTest" in this.currentTest.scope) { if ("test" in this.currentTest.scope) { throw "Cannot run both a generator test and a normal test at the same time."; } @@ -976,17 +975,16 @@ testScope.prototype = { __timeoutFactor: 1, __expectedMinAsserts: 0, __expectedMaxAsserts: 0, __expected: 'pass', EventUtils: {}, SimpleTest: {}, Task: null, - Promise: null, Assert: null, /** * Add a test function which is a Task function. * * Task functions are functions fed into Task.jsm's Task.spawn(). They are * generators that emit promises. *