| Index: test/runners/webdriver.js | 
| =================================================================== | 
| --- a/test/runners/webdriver.js | 
| +++ b/test/runners/webdriver.js | 
| @@ -19,26 +19,37 @@ | 
|  | 
| function executeScript(driver, name, script, scriptName, scriptArgs) | 
| { | 
| let realScript = `let f = ${script} | 
| let callback = arguments[arguments.length - 1]; | 
| return Promise.resolve() | 
| .then(() => f(...arguments)) | 
| .then(() => callback());`; | 
| -  return driver.executeScript(`window.consoleLogs = []; | 
| -                               let oldLog = console.log; | 
| +  return driver.executeScript(`let oldLog = console.log; | 
| console.log = msg => { | 
| -                                 window.consoleLogs.push(msg); | 
| +                                 window._consoleLogs.log.push(msg); | 
| oldLog.call(this, msg); | 
| };`) | 
| .then(() => driver.executeAsyncScript(realScript, scriptArgs)) | 
| -    .then(() => driver.executeScript("return window.consoleLogs;")) | 
| +    .then(() => driver.executeScript("return window._consoleLogs;")) | 
| .then(result => | 
| { | 
| console.log(`\nBrowser tests in ${name}\n`); | 
| -      result.forEach(item => console.log(item)); | 
| -    }) | 
| -    .then(() => driver.quit()) | 
| -  ; | 
| +      for (let item of result.log) | 
| +        console.log(item); | 
| +      return driver.quit().then(() => | 
| +      { | 
| +        if (result.failures != 0) | 
| +          throw name; | 
| +      }); | 
| +    }, error => | 
| +    { | 
| +      // This could be replaced by Promise.finally() | 
| +      // once we require NodeJS >= 10 | 
| +      return driver.quit().then(() => | 
| +      { | 
| +        throw error; | 
| +      }); | 
| +    }); | 
| } | 
|  | 
| module.exports.executeScript = executeScript; | 
|  |