| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- #!/usr/bin/env node
 
- 'use strict';
 
- /**
 
-  * This tiny wrapper file checks for known node flags and appends them
 
-  * when found, before invoking the "real" _mocha(1) executable.
 
-  */
 
- const spawn = require('child_process').spawn;
 
- const path = require('path');
 
- const getOptions = require('./options');
 
- const args = [path.join(__dirname, '_mocha')];
 
- // Load mocha.opts into process.argv
 
- // Must be loaded here to handle node-specific options
 
- getOptions();
 
- process.argv.slice(2).forEach(arg => {
 
-   const flag = arg.split('=')[0];
 
-   switch (flag) {
 
-     case '-d':
 
-       args.unshift('--debug');
 
-       args.push('--no-timeouts');
 
-       break;
 
-     case 'debug':
 
-     case '--debug':
 
-     case '--debug-brk':
 
-     case '--inspect':
 
-     case '--inspect-brk':
 
-       args.unshift(arg);
 
-       args.push('--no-timeouts');
 
-       break;
 
-     case '-gc':
 
-     case '--expose-gc':
 
-       args.unshift('--expose-gc');
 
-       break;
 
-     case '--gc-global':
 
-     case '--es_staging':
 
-     case '--no-deprecation':
 
-     case '--no-warnings':
 
-     case '--prof':
 
-     case '--log-timer-events':
 
-     case '--throw-deprecation':
 
-     case '--trace-deprecation':
 
-     case '--trace-warnings':
 
-     case '--use_strict':
 
-     case '--allow-natives-syntax':
 
-     case '--perf-basic-prof':
 
-     case '--napi-modules':
 
-       args.unshift(arg);
 
-       break;
 
-     default:
 
-       if (arg.indexOf('--harmony') === 0) {
 
-         args.unshift(arg);
 
-       } else if (arg.indexOf('--trace') === 0) {
 
-         args.unshift(arg);
 
-       } else if (arg.indexOf('--icu-data-dir') === 0) {
 
-         args.unshift(arg);
 
-       } else if (arg.indexOf('--max-old-space-size') === 0) {
 
-         args.unshift(arg);
 
-       } else if (arg.indexOf('--preserve-symlinks') === 0) {
 
-         args.unshift(arg);
 
-       } else {
 
-         args.push(arg);
 
-       }
 
-       break;
 
-   }
 
- });
 
- const proc = spawn(process.execPath, args, {
 
-   stdio: 'inherit'
 
- });
 
- proc.on('exit', (code, signal) => {
 
-   process.on('exit', () => {
 
-     if (signal) {
 
-       process.kill(process.pid, signal);
 
-     } else {
 
-       process.exit(code);
 
-     }
 
-   });
 
- });
 
- // terminate children.
 
- process.on('SIGINT', () => {
 
-   proc.kill('SIGINT'); // calls runner.abort()
 
-   proc.kill('SIGTERM'); // if that didn't work, we're probably in an infinite loop, so make it die.
 
- });
 
 
  |