├── test ├── replace.js ├── unscopables.js ├── fixtures │ ├── 10-stderr.txt │ ├── 10-stdout.txt │ ├── create-files.sh │ ├── 10-stdout-stderr.txt │ ├── log-broken.js │ ├── log.js │ ├── 100-stderr.txt │ ├── 100-stdout.txt │ ├── 100-stdout-stderr.txt │ ├── 1000-stderr.txt │ ├── 1000-stdout.txt │ └── 1000-stdout-stderr.txt ├── valid.js ├── __main__.cpython-38.pyc ├── WebAreaRole.js ├── MenuButtonRole.js ├── structured-clone.js ├── es.date.to-iso-string.js ├── box-shadow.js ├── readShebang.js ├── emphasisRole.js ├── es.array.includes.js ├── flex-basis.js ├── docSubtitleRole.js ├── docPrefaceRole.js ├── menubarRole.js ├── css-exclusions.js ├── css-zoom.js ├── canvas.js ├── css-resize.js ├── link-rel-prefetch.js ├── css-conic-gradients.js ├── form-submit-attributes.js ├── classlist.js ├── relative-module-resolver.js ├── flatMapLimit.js ├── items.jst ├── required.jst ├── groupBy.js ├── Axios.js └── scope.js ├── grid-row-align.js ├── LICENSE-MIT ├── package.json ├── Gruntfile.js ├── lib └── exit.js └── README.md /test/replace.js: -------------------------------------------------------------------------------- 1 | var parent = require('../../stable/symbol/replace'); 2 | 3 | module.exports = parent; 4 | -------------------------------------------------------------------------------- /test/unscopables.js: -------------------------------------------------------------------------------- 1 | var parent = require('../../stable/symbol/unscopables'); 2 | 3 | module.exports = parent; 4 | -------------------------------------------------------------------------------- /test/fixtures/10-stderr.txt: -------------------------------------------------------------------------------- 1 | stderr 0 2 | stderr 1 3 | stderr 2 4 | stderr 3 5 | stderr 4 6 | stderr 5 7 | stderr 6 8 | stderr 7 9 | stderr 8 10 | stderr 9 11 | -------------------------------------------------------------------------------- /test/fixtures/10-stdout.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stdout 1 3 | stdout 2 4 | stdout 3 5 | stdout 4 6 | stdout 5 7 | stdout 6 8 | stdout 7 9 | stdout 8 10 | stdout 9 11 | -------------------------------------------------------------------------------- /test/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /test/__main__.cpython-38.pyc: -------------------------------------------------------------------------------- 1 | U 2 | ���eI�@sddlmZedkre�dS)�)� 3 | cli_detect�__main__N)�clir�__name__�rr�?/tmp/pip-unpacked-wheel-7brmhoz4/charset_normalizer/__main__.py�s  -------------------------------------------------------------------------------- /test/fixtures/create-files.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm 10*.txt 4 | for n in 10 100 1000; do 5 | node log.js 0 $n stdout stderr &> $n-stdout-stderr.txt 6 | node log.js 0 $n stdout &> $n-stdout.txt 7 | node log.js 0 $n stderr &> $n-stderr.txt 8 | done 9 | -------------------------------------------------------------------------------- /test/WebAreaRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports["default"] = void 0; 7 | var WebAreaRole = { 8 | relatedConcepts: [], 9 | type: 'structure' 10 | }; 11 | var _default = WebAreaRole; 12 | exports["default"] = _default; -------------------------------------------------------------------------------- /test/MenuButtonRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports["default"] = void 0; 7 | var MenuButtonRole = { 8 | relatedConcepts: [], 9 | type: 'widget' 10 | }; 11 | var _default = MenuButtonRole; 12 | exports["default"] = _default; -------------------------------------------------------------------------------- /test/structured-clone.js: -------------------------------------------------------------------------------- 1 | require('../modules/es.array.iterator'); 2 | require('../modules/es.object.to-string'); 3 | require('../modules/es.map'); 4 | require('../modules/es.set'); 5 | require('../modules/web.structured-clone'); 6 | var path = require('../internals/path'); 7 | 8 | module.exports = path.structuredClone; 9 | -------------------------------------------------------------------------------- /test/fixtures/10-stdout-stderr.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stderr 0 3 | stdout 1 4 | stdout 2 5 | stderr 1 6 | stdout 3 7 | stderr 2 8 | stderr 3 9 | stdout 4 10 | stderr 4 11 | stdout 5 12 | stderr 5 13 | stdout 6 14 | stderr 6 15 | stdout 7 16 | stderr 7 17 | stdout 8 18 | stderr 8 19 | stdout 9 20 | stderr 9 21 | -------------------------------------------------------------------------------- /test/es.date.to-iso-string.js: -------------------------------------------------------------------------------- 1 | var $ = require('../internals/export'); 2 | var toISOString = require('../internals/date-to-iso-string'); 3 | 4 | // `Date.prototype.toISOString` method 5 | // https://tc39.es/ecma262/#sec-date.prototype.toisostring 6 | // PhantomJS / old WebKit has a broken implementations 7 | $({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { 8 | toISOString: toISOString 9 | }); 10 | -------------------------------------------------------------------------------- /test/box-shadow.js: -------------------------------------------------------------------------------- 1 | var plugin = { 2 | level1: { 3 | property: function boxShadow(_rule, property) { 4 | var values = property.value; 5 | 6 | // remove multiple zeros 7 | if (values.length == 4 && values[0][1] === '0' && values[1][1] === '0' && values[2][1] === '0' && values[3][1] === '0') { 8 | property.value.splice(2); 9 | property.dirty = true; 10 | } 11 | } 12 | } 13 | }; 14 | 15 | module.exports = plugin; 16 | -------------------------------------------------------------------------------- /test/fixtures/log-broken.js: -------------------------------------------------------------------------------- 1 | var errorCode = process.argv[2]; 2 | var max = process.argv[3]; 3 | var modes = process.argv.slice(4); 4 | 5 | function stdout(message) { 6 | if (modes.indexOf('stdout') === -1) { return; } 7 | process.stdout.write('stdout ' + message + '\n'); 8 | } 9 | 10 | function stderr(message) { 11 | if (modes.indexOf('stderr') === -1) { return; } 12 | process.stderr.write('stderr ' + message + '\n'); 13 | } 14 | 15 | for (var i = 0; i < max; i++) { 16 | stdout(i); 17 | stderr(i); 18 | } 19 | 20 | process.exit(errorCode); 21 | 22 | stdout('fail'); 23 | stderr('fail'); 24 | -------------------------------------------------------------------------------- /grid-row-align.js: -------------------------------------------------------------------------------- 1 | let Declaration = require('../declaration') 2 | 3 | class GridRowAlign extends Declaration { 4 | /** 5 | * Do not prefix flexbox values 6 | */ 7 | check(decl) { 8 | return !decl.value.includes('flex-') && decl.value !== 'baseline' 9 | } 10 | 11 | /** 12 | * Change property name for IE 13 | */ 14 | prefixed(prop, prefix) { 15 | return prefix + 'grid-row-align' 16 | } 17 | 18 | /** 19 | * Change IE property back 20 | */ 21 | normalize() { 22 | return 'align-self' 23 | } 24 | } 25 | 26 | GridRowAlign.names = ['grid-row-align'] 27 | 28 | module.exports = GridRowAlign 29 | -------------------------------------------------------------------------------- /test/fixtures/log.js: -------------------------------------------------------------------------------- 1 | var exit = require('../../lib/exit'); 2 | 3 | var errorCode = process.argv[2]; 4 | var max = process.argv[3]; 5 | var modes = process.argv.slice(4); 6 | 7 | function stdout(message) { 8 | if (modes.indexOf('stdout') === -1) { return; } 9 | process.stdout.write('stdout ' + message + '\n'); 10 | } 11 | 12 | function stderr(message) { 13 | if (modes.indexOf('stderr') === -1) { return; } 14 | process.stderr.write('stderr ' + message + '\n'); 15 | } 16 | 17 | for (var i = 0; i < max; i++) { 18 | stdout(i); 19 | stderr(i); 20 | } 21 | 22 | exit(errorCode); 23 | 24 | stdout('fail'); 25 | stderr('fail'); 26 | -------------------------------------------------------------------------------- /test/readShebang.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const shebangCommand = require('shebang-command'); 5 | 6 | function readShebang(command) { 7 | // Read the first 150 bytes from the file 8 | const size = 150; 9 | const buffer = Buffer.alloc(size); 10 | 11 | let fd; 12 | 13 | try { 14 | fd = fs.openSync(command, 'r'); 15 | fs.readSync(fd, buffer, 0, size, 0); 16 | fs.closeSync(fd); 17 | } catch (e) { /* Empty */ } 18 | 19 | // Attempt to extract shebang (null is returned if not a shebang) 20 | return shebangCommand(buffer.toString()); 21 | } 22 | 23 | module.exports = readShebang; 24 | -------------------------------------------------------------------------------- /test/emphasisRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); 4 | 5 | _Object$defineProperty(exports, "__esModule", { 6 | value: true 7 | }); 8 | 9 | exports.default = void 0; 10 | var emphasisRole = { 11 | abstract: false, 12 | accessibleNameRequired: false, 13 | baseConcepts: [], 14 | childrenPresentational: false, 15 | nameFrom: ['prohibited'], 16 | prohibitedProps: ['aria-label', 'aria-labelledby'], 17 | props: {}, 18 | relatedConcepts: [], 19 | requireContextRole: [], 20 | requiredContextRole: [], 21 | requiredOwnedElements: [], 22 | requiredProps: {}, 23 | superClass: [['roletype', 'structure', 'section']] 24 | }; 25 | var _default = emphasisRole; 26 | exports.default = _default; -------------------------------------------------------------------------------- /test/es.array.includes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var $ = require('../internals/export'); 3 | var $includes = require('../internals/array-includes').includes; 4 | var fails = require('../internals/fails'); 5 | var addToUnscopables = require('../internals/add-to-unscopables'); 6 | 7 | // FF99+ bug 8 | var BROKEN_ON_SPARSE = fails(function () { 9 | return !Array(1).includes(); 10 | }); 11 | 12 | // `Array.prototype.includes` method 13 | // https://tc39.es/ecma262/#sec-array.prototype.includes 14 | $({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { 15 | includes: function includes(el /* , fromIndex = 0 */) { 16 | return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 17 | } 18 | }); 19 | 20 | // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 21 | addToUnscopables('includes'); 22 | -------------------------------------------------------------------------------- /test/flex-basis.js: -------------------------------------------------------------------------------- 1 | let flexSpec = require('./flex-spec') 2 | let Declaration = require('../declaration') 3 | 4 | class FlexBasis extends Declaration { 5 | /** 6 | * Return property name by final spec 7 | */ 8 | normalize() { 9 | return 'flex-basis' 10 | } 11 | 12 | /** 13 | * Return flex property for 2012 spec 14 | */ 15 | prefixed(prop, prefix) { 16 | let spec 17 | ;[spec, prefix] = flexSpec(prefix) 18 | if (spec === 2012) { 19 | return prefix + 'flex-preferred-size' 20 | } 21 | return super.prefixed(prop, prefix) 22 | } 23 | 24 | /** 25 | * Ignore 2009 spec and use flex property for 2012 26 | */ 27 | set(decl, prefix) { 28 | let spec 29 | ;[spec, prefix] = flexSpec(prefix) 30 | if (spec === 2012 || spec === 'final') { 31 | return super.set(decl, prefix) 32 | } 33 | return undefined 34 | } 35 | } 36 | 37 | FlexBasis.names = ['flex-basis', 'flex-preferred-size'] 38 | 39 | module.exports = FlexBasis 40 | -------------------------------------------------------------------------------- /test/docSubtitleRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); 4 | 5 | _Object$defineProperty(exports, "__esModule", { 6 | value: true 7 | }); 8 | 9 | exports.default = void 0; 10 | var docSubtitleRole = { 11 | abstract: false, 12 | accessibleNameRequired: false, 13 | baseConcepts: [], 14 | childrenPresentational: false, 15 | nameFrom: ['author'], 16 | prohibitedProps: [], 17 | props: { 18 | 'aria-disabled': null, 19 | 'aria-errormessage': null, 20 | 'aria-expanded': null, 21 | 'aria-haspopup': null, 22 | 'aria-invalid': null 23 | }, 24 | relatedConcepts: [{ 25 | concept: { 26 | name: 'subtitle [EPUB-SSV]' 27 | }, 28 | module: 'EPUB' 29 | }], 30 | requireContextRole: [], 31 | requiredContextRole: [], 32 | requiredOwnedElements: [], 33 | requiredProps: {}, 34 | superClass: [['roletype', 'structure', 'sectionhead']] 35 | }; 36 | var _default = docSubtitleRole; 37 | exports.default = _default; -------------------------------------------------------------------------------- /test/docPrefaceRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); 4 | 5 | _Object$defineProperty(exports, "__esModule", { 6 | value: true 7 | }); 8 | 9 | exports.default = void 0; 10 | var docPrefaceRole = { 11 | abstract: false, 12 | accessibleNameRequired: false, 13 | baseConcepts: [], 14 | childrenPresentational: false, 15 | nameFrom: ['author'], 16 | prohibitedProps: [], 17 | props: { 18 | 'aria-disabled': null, 19 | 'aria-errormessage': null, 20 | 'aria-expanded': null, 21 | 'aria-haspopup': null, 22 | 'aria-invalid': null 23 | }, 24 | relatedConcepts: [{ 25 | concept: { 26 | name: 'preface [EPUB-SSV]' 27 | }, 28 | module: 'EPUB' 29 | }], 30 | requireContextRole: [], 31 | requiredContextRole: [], 32 | requiredOwnedElements: [], 33 | requiredProps: {}, 34 | superClass: [['roletype', 'structure', 'section', 'landmark']] 35 | }; 36 | var _default = docPrefaceRole; 37 | exports.default = _default; -------------------------------------------------------------------------------- /test/menubarRole.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); 4 | 5 | _Object$defineProperty(exports, "__esModule", { 6 | value: true 7 | }); 8 | 9 | exports.default = void 0; 10 | var menubarRole = { 11 | abstract: false, 12 | accessibleNameRequired: false, 13 | baseConcepts: [], 14 | childrenPresentational: false, 15 | nameFrom: ['author'], 16 | prohibitedProps: [], 17 | props: { 18 | 'aria-orientation': 'horizontal' 19 | }, 20 | relatedConcepts: [{ 21 | concept: { 22 | name: 'toolbar' 23 | }, 24 | module: 'ARIA' 25 | }], 26 | requireContextRole: [], 27 | requiredContextRole: [], 28 | requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']], 29 | requiredProps: {}, 30 | superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']] 31 | }; 32 | var _default = menubarRole; 33 | exports.default = _default; -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 "Cowboy" Ben Alman 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /test/css-exclusions.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"2":"J D E F uB","33":"A B"},B:{"2":"P Q R S T U V W Z a b c d e f g h i j k X H","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 vB jB I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB wB xB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB"},E:{"2":"I l J D E F A B C K L G 0B oB 1B 2B 3B 4B pB hB iB 5B 6B 7B qB rB 8B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W 9B AC BC CC hB sB DC iB"},G:{"2":"E oB EC tB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB"},H:{"2":"YC"},I:{"2":"jB I H ZC aC bC cC tB dC eC"},J:{"2":"D A"},K:{"2":"A B C Y hB sB iB"},L:{"2":"H"},M:{"2":"X"},N:{"33":"A B"},O:{"2":"fC"},P:{"2":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"2":"rC"},R:{"2":"sC"},S:{"2":"tC"}},B:5,C:"CSS Exclusions Level 1"}; 2 | -------------------------------------------------------------------------------- /test/css-zoom.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"1":"J D uB","129":"E F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k X H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 vB jB I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB"},E:{"1":"I l J D E F A B C K L G 1B 2B 3B 4B pB hB iB 5B 6B 7B qB rB 8B","2":"0B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W","2":"F B C 9B AC BC CC hB sB DC iB"},G:{"1":"E EC tB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB","2":"oB"},H:{"2":"YC"},I:{"1":"jB I H ZC aC bC cC tB dC eC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C hB sB iB"},L:{"1":"H"},M:{"2":"X"},N:{"129":"A B"},O:{"1":"fC"},P:{"1":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"1":"rC"},R:{"1":"sC"},S:{"2":"tC"}},B:7,C:"CSS zoom"}; 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "exit", 3 | "description": "A replacement for process.exit that ensures stdio are fully drained before exiting.", 4 | "version": "0.1.2", 5 | "homepage": "https://github.com/cowboy/node-exit", 6 | "author": { 7 | "name": "\"Cowboy\" Ben Alman", 8 | "url": "http://benalman.com/" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git://github.com/cowboy/node-exit.git" 13 | }, 14 | "bugs": { 15 | "url": "https://github.com/cowboy/node-exit/issues" 16 | }, 17 | "licenses": [ 18 | { 19 | "type": "MIT", 20 | "url": "https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT" 21 | } 22 | ], 23 | "main": "lib/exit", 24 | "engines": { 25 | "node": ">= 0.8.0" 26 | }, 27 | "scripts": { 28 | "test": "grunt nodeunit" 29 | }, 30 | "devDependencies": { 31 | "grunt-contrib-jshint": "~0.6.4", 32 | "grunt-contrib-nodeunit": "~0.2.0", 33 | "grunt-contrib-watch": "~0.5.3", 34 | "grunt": "~0.4.1", 35 | "which": "~1.0.5" 36 | }, 37 | "keywords": [ 38 | "exit", 39 | "process", 40 | "stdio", 41 | "stdout", 42 | "stderr", 43 | "drain", 44 | "flush", 45 | "3584" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function(grunt) { 4 | 5 | // Project configuration. 6 | grunt.initConfig({ 7 | nodeunit: { 8 | files: ['test/**/*_test.js'], 9 | }, 10 | jshint: { 11 | options: { 12 | jshintrc: '.jshintrc' 13 | }, 14 | gruntfile: { 15 | src: 'Gruntfile.js' 16 | }, 17 | lib: { 18 | src: ['lib/**/*.js'] 19 | }, 20 | test: { 21 | src: ['test/**/*.js'] 22 | }, 23 | }, 24 | watch: { 25 | gruntfile: { 26 | files: '<%= jshint.gruntfile.src %>', 27 | tasks: ['jshint:gruntfile'] 28 | }, 29 | lib: { 30 | files: '<%= jshint.lib.src %>', 31 | tasks: ['jshint:lib', 'nodeunit'] 32 | }, 33 | test: { 34 | files: '<%= jshint.test.src %>', 35 | tasks: ['jshint:test', 'nodeunit'] 36 | }, 37 | }, 38 | }); 39 | 40 | // These plugins provide necessary tasks. 41 | grunt.loadNpmTasks('grunt-contrib-nodeunit'); 42 | grunt.loadNpmTasks('grunt-contrib-jshint'); 43 | grunt.loadNpmTasks('grunt-contrib-watch'); 44 | 45 | // Default task. 46 | grunt.registerTask('default', ['jshint', 'nodeunit']); 47 | 48 | }; 49 | -------------------------------------------------------------------------------- /test/canvas.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"1":"F A B","2":"uB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k X H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB xB","132":"vB jB wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB"},E:{"1":"I l J D E F A B C K L G 1B 2B 3B 4B pB hB iB 5B 6B 7B qB rB 8B","132":"0B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W 9B AC BC CC hB sB DC iB"},G:{"1":"E oB EC tB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB"},H:{"260":"YC"},I:{"1":"jB I H cC tB dC eC","132":"ZC aC bC"},J:{"1":"D A"},K:{"1":"A B C Y hB sB iB"},L:{"1":"H"},M:{"1":"X"},N:{"1":"A B"},O:{"1":"fC"},P:{"1":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"1":"rC"},R:{"1":"sC"},S:{"1":"tC"}},B:1,C:"Canvas (basic support)"}; 2 | -------------------------------------------------------------------------------- /test/css-resize.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"2":"J D E F A B uB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k X H","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB","2":"vB jB wB xB","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB"},E:{"1":"I l J D E F A B C K L G 1B 2B 3B 4B pB hB iB 5B 6B 7B qB rB 8B","2":"0B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W","2":"F B C 9B AC BC CC hB sB DC","132":"iB"},G:{"2":"E oB EC tB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB"},H:{"2":"YC"},I:{"1":"H","2":"jB I ZC aC bC cC tB dC eC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C hB sB iB"},L:{"1":"H"},M:{"1":"X"},N:{"2":"A B"},O:{"1":"fC"},P:{"1":"gC hC iC jC kC pB lC mC nC oC pC qC","2":"I"},Q:{"1":"rC"},R:{"1":"sC"},S:{"2":"tC"}},B:4,C:"CSS resize property"}; 2 | -------------------------------------------------------------------------------- /test/link-rel-prefetch.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"1":"B","2":"J D E F A uB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k X H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 vB jB I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB","2":"I l J D"},E:{"2":"I l J D E F A B C K 0B oB 1B 2B 3B 4B pB hB iB","194":"L G 5B 6B 7B qB rB 8B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W","2":"F B C 9B AC BC CC hB sB DC iB"},G:{"2":"E oB EC tB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC","194":"UC VC WC XC qB rB"},H:{"2":"YC"},I:{"1":"I H dC eC","2":"jB ZC aC bC cC tB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C hB sB iB"},L:{"1":"H"},M:{"1":"X"},N:{"1":"B","2":"A"},O:{"1":"fC"},P:{"1":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"1":"rC"},R:{"1":"sC"},S:{"1":"tC"}},B:5,C:"Resource Hints: prefetch"}; 2 | -------------------------------------------------------------------------------- /test/css-conic-gradients.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"2":"J D E F A B uB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k X H","2":"C K L G M N O"},C:{"1":"S T U V W Z a b c d e f g h i j k X H nB","2":"0 1 2 3 4 5 6 7 8 9 vB jB I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB wB xB","578":"dB eB fB gB P Q R mB"},D:{"1":"XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB","2":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"kB QB lB RB SB Y TB UB VB WB"},E:{"1":"K L G iB 5B 6B 7B qB rB 8B","2":"I l J D E F A B C 0B oB 1B 2B 3B 4B pB hB"},F:{"1":"Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O m n o p q r s t u v w x y z AB BB CB 9B AC BC CC hB sB DC iB","194":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"QC RC SC TC UC VC WC XC qB rB","2":"E oB EC tB FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"YC"},I:{"1":"H","2":"jB I ZC aC bC cC tB dC eC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C hB sB iB"},L:{"1":"H"},M:{"1":"X"},N:{"2":"A B"},O:{"2":"fC"},P:{"1":"pB lC mC nC oC pC qC","2":"I gC hC iC jC kC"},Q:{"2":"rC"},R:{"2":"sC"},S:{"2":"tC"}},B:5,C:"CSS Conical Gradients"}; 2 | -------------------------------------------------------------------------------- /test/form-submit-attributes.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"1":"A B","2":"J D E F uB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k X H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I l J D E F A B C K L G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB","2":"vB jB wB xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB","16":"I l J D E F A B C K L"},E:{"1":"J D E F A B C K L G 1B 2B 3B 4B pB hB iB 5B 6B 7B qB rB 8B","2":"I l 0B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W CC hB sB DC iB","2":"F 9B","16":"AC BC"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB","2":"oB EC tB"},H:{"1":"YC"},I:{"1":"I H cC tB dC eC","2":"ZC aC bC","16":"jB"},J:{"1":"A","2":"D"},K:{"1":"B C Y hB sB iB","16":"A"},L:{"1":"H"},M:{"1":"X"},N:{"1":"A B"},O:{"1":"fC"},P:{"1":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"1":"rC"},R:{"1":"sC"},S:{"1":"tC"}},B:1,C:"Attributes for form submission"}; 2 | -------------------------------------------------------------------------------- /lib/exit.js: -------------------------------------------------------------------------------- 1 | /* 2 | * exit 3 | * https://github.com/cowboy/node-exit 4 | * 5 | * Copyright (c) 2013 "Cowboy" Ben Alman 6 | * Licensed under the MIT license. 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = function exit(exitCode, streams) { 12 | if (!streams) { streams = [process.stdout, process.stderr]; } 13 | var drainCount = 0; 14 | // Actually exit if all streams are drained. 15 | function tryToExit() { 16 | if (drainCount === streams.length) { 17 | process.exit(exitCode); 18 | } 19 | } 20 | streams.forEach(function(stream) { 21 | // Count drained streams now, but monitor non-drained streams. 22 | if (stream.bufferSize === 0) { 23 | drainCount++; 24 | } else { 25 | stream.write('', 'utf-8', function() { 26 | drainCount++; 27 | tryToExit(); 28 | }); 29 | } 30 | // Prevent further writing. 31 | stream.write = function() {}; 32 | }); 33 | // If all streams were already drained, exit now. 34 | tryToExit(); 35 | // In Windows, when run as a Node.js child process, a script utilizing 36 | // this library might just exit with a 0 exit code, regardless. This code, 37 | // despite the fact that it looks a bit crazy, appears to fix that. 38 | process.on('exit', function() { 39 | process.exit(exitCode); 40 | }); 41 | }; 42 | -------------------------------------------------------------------------------- /test/classlist.js: -------------------------------------------------------------------------------- 1 | module.exports={A:{A:{"8":"J D E F uB","1924":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k X H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W Z a b c d e f g h i j k X H nB","8":"vB jB wB","516":"r s","772":"I l J D E F A B C K L G M N O m n o p q xB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB kB QB lB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R S T U V W Z a b c d e f g h i j k X H nB yB zB","8":"I l J D","516":"r s t u","772":"q","900":"E F A B C K L G M N O m n o p"},E:{"1":"D E F A B C K L G 3B 4B pB hB iB 5B 6B 7B qB rB 8B","8":"I l 0B oB","900":"J 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB Y TB UB VB WB XB YB ZB aB bB cB dB eB fB gB P Q R mB S T U V W","8":"F B 9B AC BC CC hB","900":"C sB DC iB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC qB rB","8":"oB EC tB","900":"FC GC"},H:{"900":"YC"},I:{"1":"H dC eC","8":"ZC aC bC","900":"jB I cC tB"},J:{"1":"A","900":"D"},K:{"1":"Y","8":"A B","900":"C hB sB iB"},L:{"1":"H"},M:{"1":"X"},N:{"900":"A B"},O:{"1":"fC"},P:{"1":"I gC hC iC jC kC pB lC mC nC oC pC qC"},Q:{"1":"rC"},R:{"1":"sC"},S:{"1":"tC"}},B:1,C:"classList (DOMTokenList)"}; 2 | -------------------------------------------------------------------------------- /test/relative-module-resolver.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Utility for resolving a module relative to another module 3 | * @author Teddy Katz 4 | */ 5 | 6 | import Module from "module"; 7 | 8 | /* 9 | * `Module.createRequire` is added in v12.2.0. It supports URL as well. 10 | * We only support the case where the argument is a filepath, not a URL. 11 | */ 12 | const createRequire = Module.createRequire; 13 | 14 | /** 15 | * Resolves a Node module relative to another module 16 | * @param {string} moduleName The name of a Node module, or a path to a Node module. 17 | * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be 18 | * a file rather than a directory, but the file need not actually exist. 19 | * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath` 20 | */ 21 | function resolve(moduleName, relativeToPath) { 22 | try { 23 | return createRequire(relativeToPath).resolve(moduleName); 24 | } catch (error) { 25 | 26 | // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future. 27 | if ( 28 | typeof error === "object" && 29 | error !== null && 30 | error.code === "MODULE_NOT_FOUND" && 31 | !error.requireStack && 32 | error.message.includes(moduleName) 33 | ) { 34 | error.message += `\nRequire stack:\n- ${relativeToPath}`; 35 | } 36 | throw error; 37 | } 38 | } 39 | 40 | export { 41 | resolve 42 | }; 43 | -------------------------------------------------------------------------------- /test/fixtures/100-stderr.txt: -------------------------------------------------------------------------------- 1 | stderr 0 2 | stderr 1 3 | stderr 2 4 | stderr 3 5 | stderr 4 6 | stderr 5 7 | stderr 6 8 | stderr 7 9 | stderr 8 10 | stderr 9 11 | stderr 10 12 | stderr 11 13 | stderr 12 14 | stderr 13 15 | stderr 14 16 | stderr 15 17 | stderr 16 18 | stderr 17 19 | stderr 18 20 | stderr 19 21 | stderr 20 22 | stderr 21 23 | stderr 22 24 | stderr 23 25 | stderr 24 26 | stderr 25 27 | stderr 26 28 | stderr 27 29 | stderr 28 30 | stderr 29 31 | stderr 30 32 | stderr 31 33 | stderr 32 34 | stderr 33 35 | stderr 34 36 | stderr 35 37 | stderr 36 38 | stderr 37 39 | stderr 38 40 | stderr 39 41 | stderr 40 42 | stderr 41 43 | stderr 42 44 | stderr 43 45 | stderr 44 46 | stderr 45 47 | stderr 46 48 | stderr 47 49 | stderr 48 50 | stderr 49 51 | stderr 50 52 | stderr 51 53 | stderr 52 54 | stderr 53 55 | stderr 54 56 | stderr 55 57 | stderr 56 58 | stderr 57 59 | stderr 58 60 | stderr 59 61 | stderr 60 62 | stderr 61 63 | stderr 62 64 | stderr 63 65 | stderr 64 66 | stderr 65 67 | stderr 66 68 | stderr 67 69 | stderr 68 70 | stderr 69 71 | stderr 70 72 | stderr 71 73 | stderr 72 74 | stderr 73 75 | stderr 74 76 | stderr 75 77 | stderr 76 78 | stderr 77 79 | stderr 78 80 | stderr 79 81 | stderr 80 82 | stderr 81 83 | stderr 82 84 | stderr 83 85 | stderr 84 86 | stderr 85 87 | stderr 86 88 | stderr 87 89 | stderr 88 90 | stderr 89 91 | stderr 90 92 | stderr 91 93 | stderr 92 94 | stderr 93 95 | stderr 94 96 | stderr 95 97 | stderr 96 98 | stderr 97 99 | stderr 98 100 | stderr 99 101 | -------------------------------------------------------------------------------- /test/fixtures/100-stdout.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stdout 1 3 | stdout 2 4 | stdout 3 5 | stdout 4 6 | stdout 5 7 | stdout 6 8 | stdout 7 9 | stdout 8 10 | stdout 9 11 | stdout 10 12 | stdout 11 13 | stdout 12 14 | stdout 13 15 | stdout 14 16 | stdout 15 17 | stdout 16 18 | stdout 17 19 | stdout 18 20 | stdout 19 21 | stdout 20 22 | stdout 21 23 | stdout 22 24 | stdout 23 25 | stdout 24 26 | stdout 25 27 | stdout 26 28 | stdout 27 29 | stdout 28 30 | stdout 29 31 | stdout 30 32 | stdout 31 33 | stdout 32 34 | stdout 33 35 | stdout 34 36 | stdout 35 37 | stdout 36 38 | stdout 37 39 | stdout 38 40 | stdout 39 41 | stdout 40 42 | stdout 41 43 | stdout 42 44 | stdout 43 45 | stdout 44 46 | stdout 45 47 | stdout 46 48 | stdout 47 49 | stdout 48 50 | stdout 49 51 | stdout 50 52 | stdout 51 53 | stdout 52 54 | stdout 53 55 | stdout 54 56 | stdout 55 57 | stdout 56 58 | stdout 57 59 | stdout 58 60 | stdout 59 61 | stdout 60 62 | stdout 61 63 | stdout 62 64 | stdout 63 65 | stdout 64 66 | stdout 65 67 | stdout 66 68 | stdout 67 69 | stdout 68 70 | stdout 69 71 | stdout 70 72 | stdout 71 73 | stdout 72 74 | stdout 73 75 | stdout 74 76 | stdout 75 77 | stdout 76 78 | stdout 77 79 | stdout 78 80 | stdout 79 81 | stdout 80 82 | stdout 81 83 | stdout 82 84 | stdout 83 85 | stdout 84 86 | stdout 85 87 | stdout 86 88 | stdout 87 89 | stdout 88 90 | stdout 89 91 | stdout 90 92 | stdout 91 93 | stdout 92 94 | stdout 93 95 | stdout 94 96 | stdout 95 97 | stdout 96 98 | stdout 97 99 | stdout 98 100 | stdout 99 101 | -------------------------------------------------------------------------------- /test/flatMapLimit.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | 7 | var _wrapAsync = require('./internal/wrapAsync.js'); 8 | 9 | var _wrapAsync2 = _interopRequireDefault(_wrapAsync); 10 | 11 | var _mapLimit = require('./mapLimit.js'); 12 | 13 | var _mapLimit2 = _interopRequireDefault(_mapLimit); 14 | 15 | var _awaitify = require('./internal/awaitify.js'); 16 | 17 | var _awaitify2 = _interopRequireDefault(_awaitify); 18 | 19 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 20 | 21 | /** 22 | * The same as [`concat`]{@link module:Collections.concat} but runs a maximum of `limit` async operations at a time. 23 | * 24 | * @name concatLimit 25 | * @static 26 | * @memberOf module:Collections 27 | * @method 28 | * @see [async.concat]{@link module:Collections.concat} 29 | * @category Collection 30 | * @alias flatMapLimit 31 | * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. 32 | * @param {number} limit - The maximum number of async operations at a time. 33 | * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`, 34 | * which should use an array as its result. Invoked with (item, callback). 35 | * @param {Function} [callback] - A callback which is called after all the 36 | * `iteratee` functions have finished, or an error occurs. Results is an array 37 | * containing the concatenated results of the `iteratee` function. Invoked with 38 | * (err, results). 39 | * @returns A Promise, if no callback is passed 40 | */ 41 | function concatLimit(coll, limit, iteratee, callback) { 42 | var _iteratee = (0, _wrapAsync2.default)(iteratee); 43 | return (0, _mapLimit2.default)(coll, limit, (val, iterCb) => { 44 | _iteratee(val, (err, ...args) => { 45 | if (err) return iterCb(err); 46 | return iterCb(err, args); 47 | }); 48 | }, (err, mapResults) => { 49 | var result = []; 50 | for (var i = 0; i < mapResults.length; i++) { 51 | if (mapResults[i]) { 52 | result = result.concat(...mapResults[i]); 53 | } 54 | } 55 | 56 | return callback(err, result); 57 | }); 58 | } 59 | exports.default = (0, _awaitify2.default)(concatLimit, 4); 60 | module.exports = exports['default']; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # exit [![Build Status](https://secure.travis-ci.org/cowboy/node-exit.png?branch=master)](http://travis-ci.org/cowboy/node-exit) 2 | 3 | A replacement for process.exit that ensures stdio are fully drained before exiting. 4 | 5 | To make a long story short, if `process.exit` is called on Windows, script output is often truncated when pipe-redirecting `stdout` or `stderr`. This module attempts to work around this issue by waiting until those streams have been completely drained before actually calling `process.exit`. 6 | 7 | See [Node.js issue #3584](https://github.com/joyent/node/issues/3584) for further reference. 8 | 9 | Tested in OS X 10.8, Windows 7 on Node.js 0.8.25 and 0.10.18. 10 | 11 | Based on some code by [@vladikoff](https://github.com/vladikoff). 12 | 13 | ## Getting Started 14 | Install the module with: `npm install exit` 15 | 16 | ```javascript 17 | var exit = require('exit'); 18 | 19 | // These lines should appear in the output, EVEN ON WINDOWS. 20 | console.log("omg"); 21 | console.error("yay"); 22 | 23 | // process.exit(5); 24 | exit(5); 25 | 26 | // These lines shouldn't appear in the output. 27 | console.log("wtf"); 28 | console.error("bro"); 29 | ``` 30 | 31 | ## Don't believe me? Try it for yourself. 32 | 33 | In Windows, clone the repo and cd to the `test\fixtures` directory. The only difference between [log.js](test/fixtures/log.js) and [log-broken.js](test/fixtures/log-broken.js) is that the former uses `exit` while the latter calls `process.exit` directly. 34 | 35 | This test was done using cmd.exe, but you can see the same results using `| grep "std"` in either PowerShell or git-bash. 36 | 37 | ``` 38 | C:\node-exit\test\fixtures>node log.js 0 10 stdout stderr 2>&1 | find "std" 39 | stdout 0 40 | stderr 0 41 | stdout 1 42 | stderr 1 43 | stdout 2 44 | stderr 2 45 | stdout 3 46 | stderr 3 47 | stdout 4 48 | stderr 4 49 | stdout 5 50 | stderr 5 51 | stdout 6 52 | stderr 6 53 | stdout 7 54 | stderr 7 55 | stdout 8 56 | stderr 8 57 | stdout 9 58 | stderr 9 59 | 60 | C:\node-exit\test\fixtures>node log-broken.js 0 10 stdout stderr 2>&1 | find "std" 61 | 62 | C:\node-exit\test\fixtures> 63 | ``` 64 | 65 | ## Contributing 66 | In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). 67 | 68 | ## Release History 69 | 2013-11-26 - v0.1.2 - Fixed a bug with hanging processes. 70 | 2013-09-26 - v0.1.1 - Fixed some bugs. It seems to actually work now! 71 | 2013-09-20 - v0.1.0 - Initial release. 72 | 73 | ## License 74 | Copyright (c) 2013 "Cowboy" Ben Alman 75 | Licensed under the MIT license. 76 | -------------------------------------------------------------------------------- /test/items.jst: -------------------------------------------------------------------------------- 1 | {{# def.definitions }} 2 | {{# def.errors }} 3 | {{# def.setupKeyword }} 4 | {{# def.setupNextLevel }} 5 | 6 | 7 | {{## def.validateItems:startFrom: 8 | for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) { 9 | {{ 10 | $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); 11 | var $passData = $data + '[' + $idx + ']'; 12 | $it.dataPathArr[$dataNxt] = $idx; 13 | }} 14 | 15 | {{# def.generateSubschemaCode }} 16 | {{# def.optimizeValidate }} 17 | 18 | {{? $breakOnError }} 19 | if (!{{=$nextValid}}) break; 20 | {{?}} 21 | } 22 | #}} 23 | 24 | {{ 25 | var $idx = 'i' + $lvl 26 | , $dataNxt = $it.dataLevel = it.dataLevel + 1 27 | , $nextData = 'data' + $dataNxt 28 | , $currentBaseId = it.baseId; 29 | }} 30 | 31 | var {{=$errs}} = errors; 32 | var {{=$valid}}; 33 | 34 | {{? Array.isArray($schema) }} 35 | {{ /* 'items' is an array of schemas */}} 36 | {{ var $additionalItems = it.schema.additionalItems; }} 37 | {{? $additionalItems === false }} 38 | {{=$valid}} = {{=$data}}.length <= {{= $schema.length }}; 39 | {{ 40 | var $currErrSchemaPath = $errSchemaPath; 41 | $errSchemaPath = it.errSchemaPath + '/additionalItems'; 42 | }} 43 | {{# def.checkError:'additionalItems' }} 44 | {{ $errSchemaPath = $currErrSchemaPath; }} 45 | {{# def.elseIfValid}} 46 | {{?}} 47 | 48 | {{~ $schema:$sch:$i }} 49 | {{? {{# def.nonEmptySchema:$sch }} }} 50 | {{=$nextValid}} = true; 51 | 52 | if ({{=$data}}.length > {{=$i}}) { 53 | {{ 54 | var $passData = $data + '[' + $i + ']'; 55 | $it.schema = $sch; 56 | $it.schemaPath = $schemaPath + '[' + $i + ']'; 57 | $it.errSchemaPath = $errSchemaPath + '/' + $i; 58 | $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); 59 | $it.dataPathArr[$dataNxt] = $i; 60 | }} 61 | 62 | {{# def.generateSubschemaCode }} 63 | {{# def.optimizeValidate }} 64 | } 65 | 66 | {{# def.ifResultValid }} 67 | {{?}} 68 | {{~}} 69 | 70 | {{? typeof $additionalItems == 'object' && {{# def.nonEmptySchema:$additionalItems }} }} 71 | {{ 72 | $it.schema = $additionalItems; 73 | $it.schemaPath = it.schemaPath + '.additionalItems'; 74 | $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; 75 | }} 76 | {{=$nextValid}} = true; 77 | 78 | if ({{=$data}}.length > {{= $schema.length }}) { 79 | {{# def.validateItems: $schema.length }} 80 | } 81 | 82 | {{# def.ifResultValid }} 83 | {{?}} 84 | 85 | {{?? {{# def.nonEmptySchema:$schema }} }} 86 | {{ /* 'items' is a single schema */}} 87 | {{ 88 | $it.schema = $schema; 89 | $it.schemaPath = $schemaPath; 90 | $it.errSchemaPath = $errSchemaPath; 91 | }} 92 | {{# def.validateItems: 0 }} 93 | {{?}} 94 | 95 | {{? $breakOnError }} 96 | {{= $closingBraces }} 97 | if ({{=$errs}} == errors) { 98 | {{?}} 99 | -------------------------------------------------------------------------------- /test/fixtures/100-stdout-stderr.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stderr 0 3 | stdout 1 4 | stderr 1 5 | stdout 2 6 | stderr 2 7 | stdout 3 8 | stderr 3 9 | stdout 4 10 | stderr 4 11 | stdout 5 12 | stderr 5 13 | stdout 6 14 | stderr 6 15 | stdout 7 16 | stderr 7 17 | stdout 8 18 | stderr 8 19 | stdout 9 20 | stderr 9 21 | stdout 10 22 | stderr 10 23 | stdout 11 24 | stderr 11 25 | stdout 12 26 | stderr 12 27 | stdout 13 28 | stderr 13 29 | stdout 14 30 | stderr 14 31 | stdout 15 32 | stderr 15 33 | stdout 16 34 | stderr 16 35 | stdout 17 36 | stderr 17 37 | stdout 18 38 | stderr 18 39 | stdout 19 40 | stderr 19 41 | stdout 20 42 | stderr 20 43 | stdout 21 44 | stderr 21 45 | stdout 22 46 | stderr 22 47 | stdout 23 48 | stderr 23 49 | stdout 24 50 | stderr 24 51 | stdout 25 52 | stderr 25 53 | stdout 26 54 | stderr 26 55 | stdout 27 56 | stderr 27 57 | stdout 28 58 | stderr 28 59 | stdout 29 60 | stderr 29 61 | stdout 30 62 | stderr 30 63 | stdout 31 64 | stderr 31 65 | stdout 32 66 | stderr 32 67 | stdout 33 68 | stderr 33 69 | stdout 34 70 | stderr 34 71 | stdout 35 72 | stderr 35 73 | stdout 36 74 | stderr 36 75 | stdout 37 76 | stderr 37 77 | stdout 38 78 | stderr 38 79 | stdout 39 80 | stderr 39 81 | stdout 40 82 | stderr 40 83 | stdout 41 84 | stderr 41 85 | stdout 42 86 | stderr 42 87 | stdout 43 88 | stderr 43 89 | stdout 44 90 | stderr 44 91 | stdout 45 92 | stderr 45 93 | stdout 46 94 | stderr 46 95 | stdout 47 96 | stderr 47 97 | stdout 48 98 | stderr 48 99 | stdout 49 100 | stderr 49 101 | stdout 50 102 | stderr 50 103 | stdout 51 104 | stderr 51 105 | stdout 52 106 | stderr 52 107 | stdout 53 108 | stderr 53 109 | stdout 54 110 | stderr 54 111 | stdout 55 112 | stderr 55 113 | stdout 56 114 | stderr 56 115 | stdout 57 116 | stderr 57 117 | stdout 58 118 | stderr 58 119 | stdout 59 120 | stderr 59 121 | stdout 60 122 | stderr 60 123 | stdout 61 124 | stderr 61 125 | stdout 62 126 | stderr 62 127 | stdout 63 128 | stderr 63 129 | stdout 64 130 | stderr 64 131 | stdout 65 132 | stderr 65 133 | stdout 66 134 | stderr 66 135 | stdout 67 136 | stderr 67 137 | stdout 68 138 | stderr 68 139 | stdout 69 140 | stderr 69 141 | stdout 70 142 | stderr 70 143 | stdout 71 144 | stderr 71 145 | stdout 72 146 | stderr 72 147 | stdout 73 148 | stderr 73 149 | stdout 74 150 | stderr 74 151 | stdout 75 152 | stderr 75 153 | stdout 76 154 | stderr 76 155 | stdout 77 156 | stderr 77 157 | stdout 78 158 | stderr 78 159 | stdout 79 160 | stderr 79 161 | stdout 80 162 | stderr 80 163 | stdout 81 164 | stderr 81 165 | stdout 82 166 | stderr 82 167 | stdout 83 168 | stderr 83 169 | stdout 84 170 | stderr 84 171 | stdout 85 172 | stderr 85 173 | stdout 86 174 | stderr 86 175 | stdout 87 176 | stderr 87 177 | stdout 88 178 | stderr 88 179 | stdout 89 180 | stderr 89 181 | stdout 90 182 | stderr 90 183 | stdout 91 184 | stderr 91 185 | stdout 92 186 | stderr 92 187 | stdout 93 188 | stderr 93 189 | stdout 94 190 | stderr 94 191 | stdout 95 192 | stderr 95 193 | stdout 96 194 | stderr 96 195 | stdout 97 196 | stderr 97 197 | stdout 98 198 | stderr 98 199 | stdout 99 200 | stderr 99 201 | -------------------------------------------------------------------------------- /test/required.jst: -------------------------------------------------------------------------------- 1 | {{# def.definitions }} 2 | {{# def.errors }} 3 | {{# def.missing }} 4 | {{# def.setupKeyword }} 5 | {{# def.$data }} 6 | 7 | {{ var $vSchema = 'schema' + $lvl; }} 8 | 9 | {{## def.setupLoop: 10 | {{? !$isData }} 11 | var {{=$vSchema}} = validate.schema{{=$schemaPath}}; 12 | {{?}} 13 | 14 | {{ 15 | var $i = 'i' + $lvl 16 | , $propertyPath = 'schema' + $lvl + '[' + $i + ']' 17 | , $missingProperty = '\' + ' + $propertyPath + ' + \''; 18 | if (it.opts._errorDataPathProperty) { 19 | it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); 20 | } 21 | }} 22 | #}} 23 | 24 | 25 | {{## def.isRequiredOwnProperty: 26 | Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}]) 27 | #}} 28 | 29 | 30 | {{? !$isData }} 31 | {{? $schema.length < it.opts.loopRequired && 32 | it.schema.properties && Object.keys(it.schema.properties).length }} 33 | {{ var $required = []; }} 34 | {{~ $schema:$property }} 35 | {{ var $propertySch = it.schema.properties[$property]; }} 36 | {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }} 37 | {{ $required[$required.length] = $property; }} 38 | {{?}} 39 | {{~}} 40 | {{??}} 41 | {{ var $required = $schema; }} 42 | {{?}} 43 | {{?}} 44 | 45 | 46 | {{? $isData || $required.length }} 47 | {{ 48 | var $currentErrorPath = it.errorPath 49 | , $loopRequired = $isData || $required.length >= it.opts.loopRequired 50 | , $ownProperties = it.opts.ownProperties; 51 | }} 52 | 53 | {{? $breakOnError }} 54 | var missing{{=$lvl}}; 55 | {{? $loopRequired }} 56 | {{# def.setupLoop }} 57 | var {{=$valid}} = true; 58 | 59 | {{?$isData}}{{# def.check$dataIsArray }}{{?}} 60 | 61 | for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { 62 | {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined 63 | {{? $ownProperties }} 64 | && {{# def.isRequiredOwnProperty }} 65 | {{?}}; 66 | if (!{{=$valid}}) break; 67 | } 68 | 69 | {{? $isData }} } {{?}} 70 | 71 | {{# def.checkError:'required' }} 72 | else { 73 | {{??}} 74 | if ({{# def.checkMissingProperty:$required }}) { 75 | {{# def.errorMissingProperty:'required' }} 76 | } else { 77 | {{?}} 78 | {{??}} 79 | {{? $loopRequired }} 80 | {{# def.setupLoop }} 81 | {{? $isData }} 82 | if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) { 83 | {{# def.addError:'required' }} 84 | } else if ({{=$vSchema}} !== undefined) { 85 | {{?}} 86 | 87 | for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { 88 | if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined 89 | {{? $ownProperties }} 90 | || !{{# def.isRequiredOwnProperty }} 91 | {{?}}) { 92 | {{# def.addError:'required' }} 93 | } 94 | } 95 | 96 | {{? $isData }} } {{?}} 97 | {{??}} 98 | {{~ $required:$propertyKey }} 99 | {{# def.allErrorsMissingProperty:'required' }} 100 | {{~}} 101 | {{?}} 102 | {{?}} 103 | 104 | {{ it.errorPath = $currentErrorPath; }} 105 | 106 | {{?? $breakOnError }} 107 | if (true) { 108 | {{?}} 109 | -------------------------------------------------------------------------------- /test/groupBy.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.default = groupBy; 7 | 8 | var _groupByLimit = require('./groupByLimit.js'); 9 | 10 | var _groupByLimit2 = _interopRequireDefault(_groupByLimit); 11 | 12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 13 | 14 | /** 15 | * Returns a new object, where each value corresponds to an array of items, from 16 | * `coll`, that returned the corresponding key. That is, the keys of the object 17 | * correspond to the values passed to the `iteratee` callback. 18 | * 19 | * Note: Since this function applies the `iteratee` to each item in parallel, 20 | * there is no guarantee that the `iteratee` functions will complete in order. 21 | * However, the values for each key in the `result` will be in the same order as 22 | * the original `coll`. For Objects, the values will roughly be in the order of 23 | * the original Objects' keys (but this can vary across JavaScript engines). 24 | * 25 | * @name groupBy 26 | * @static 27 | * @memberOf module:Collections 28 | * @method 29 | * @category Collection 30 | * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. 31 | * @param {AsyncFunction} iteratee - An async function to apply to each item in 32 | * `coll`. 33 | * The iteratee should complete with a `key` to group the value under. 34 | * Invoked with (value, callback). 35 | * @param {Function} [callback] - A callback which is called when all `iteratee` 36 | * functions have finished, or an error occurs. Result is an `Object` whoses 37 | * properties are arrays of values which returned the corresponding key. 38 | * @returns {Promise} a promise, if no callback is passed 39 | * @example 40 | * 41 | * // dir1 is a directory that contains file1.txt, file2.txt 42 | * // dir2 is a directory that contains file3.txt, file4.txt 43 | * // dir3 is a directory that contains file5.txt 44 | * // dir4 does not exist 45 | * 46 | * const files = ['dir1/file1.txt','dir2','dir4'] 47 | * 48 | * // asynchronous function that detects file type as none, file, or directory 49 | * function detectFile(file, callback) { 50 | * fs.stat(file, function(err, stat) { 51 | * if (err) { 52 | * return callback(null, 'none'); 53 | * } 54 | * callback(null, stat.isDirectory() ? 'directory' : 'file'); 55 | * }); 56 | * } 57 | * 58 | * //Using callbacks 59 | * async.groupBy(files, detectFile, function(err, result) { 60 | * if(err) { 61 | * console.log(err); 62 | * } else { 63 | * console.log(result); 64 | * // { 65 | * // file: [ 'dir1/file1.txt' ], 66 | * // none: [ 'dir4' ], 67 | * // directory: [ 'dir2'] 68 | * // } 69 | * // result is object containing the files grouped by type 70 | * } 71 | * }); 72 | * 73 | * // Using Promises 74 | * async.groupBy(files, detectFile) 75 | * .then( result => { 76 | * console.log(result); 77 | * // { 78 | * // file: [ 'dir1/file1.txt' ], 79 | * // none: [ 'dir4' ], 80 | * // directory: [ 'dir2'] 81 | * // } 82 | * // result is object containing the files grouped by type 83 | * }).catch( err => { 84 | * console.log(err); 85 | * }); 86 | * 87 | * // Using async/await 88 | * async () => { 89 | * try { 90 | * let result = await async.groupBy(files, detectFile); 91 | * console.log(result); 92 | * // { 93 | * // file: [ 'dir1/file1.txt' ], 94 | * // none: [ 'dir4' ], 95 | * // directory: [ 'dir2'] 96 | * // } 97 | * // result is object containing the files grouped by type 98 | * } 99 | * catch (err) { 100 | * console.log(err); 101 | * } 102 | * } 103 | * 104 | */ 105 | function groupBy(coll, iteratee, callback) { 106 | return (0, _groupByLimit2.default)(coll, Infinity, iteratee, callback); 107 | } 108 | module.exports = exports['default']; -------------------------------------------------------------------------------- /test/Axios.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | import buildURL from '../helpers/buildURL.js'; 5 | import InterceptorManager from './InterceptorManager.js'; 6 | import dispatchRequest from './dispatchRequest.js'; 7 | import mergeConfig from './mergeConfig.js'; 8 | import buildFullPath from './buildFullPath.js'; 9 | import validator from '../helpers/validator.js'; 10 | import AxiosHeaders from './AxiosHeaders.js'; 11 | 12 | const validators = validator.validators; 13 | 14 | /** 15 | * Create a new instance of Axios 16 | * 17 | * @param {Object} instanceConfig The default config for the instance 18 | * 19 | * @return {Axios} A new instance of Axios 20 | */ 21 | class Axios { 22 | constructor(instanceConfig) { 23 | this.defaults = instanceConfig; 24 | this.interceptors = { 25 | request: new InterceptorManager(), 26 | response: new InterceptorManager() 27 | }; 28 | } 29 | 30 | /** 31 | * Dispatch a request 32 | * 33 | * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) 34 | * @param {?Object} config 35 | * 36 | * @returns {Promise} The Promise to be fulfilled 37 | */ 38 | request(configOrUrl, config) { 39 | /*eslint no-param-reassign:0*/ 40 | // Allow for axios('example/url'[, config]) a la fetch API 41 | if (typeof configOrUrl === 'string') { 42 | config = config || {}; 43 | config.url = configOrUrl; 44 | } else { 45 | config = configOrUrl || {}; 46 | } 47 | 48 | config = mergeConfig(this.defaults, config); 49 | 50 | const {transitional, paramsSerializer, headers} = config; 51 | 52 | if (transitional !== undefined) { 53 | validator.assertOptions(transitional, { 54 | silentJSONParsing: validators.transitional(validators.boolean), 55 | forcedJSONParsing: validators.transitional(validators.boolean), 56 | clarifyTimeoutError: validators.transitional(validators.boolean) 57 | }, false); 58 | } 59 | 60 | if (paramsSerializer != null) { 61 | if (utils.isFunction(paramsSerializer)) { 62 | config.paramsSerializer = { 63 | serialize: paramsSerializer 64 | } 65 | } else { 66 | validator.assertOptions(paramsSerializer, { 67 | encode: validators.function, 68 | serialize: validators.function 69 | }, true); 70 | } 71 | } 72 | 73 | // Set config.method 74 | config.method = (config.method || this.defaults.method || 'get').toLowerCase(); 75 | 76 | // Flatten headers 77 | let contextHeaders = headers && utils.merge( 78 | headers.common, 79 | headers[config.method] 80 | ); 81 | 82 | headers && utils.forEach( 83 | ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], 84 | (method) => { 85 | delete headers[method]; 86 | } 87 | ); 88 | 89 | config.headers = AxiosHeaders.concat(contextHeaders, headers); 90 | 91 | // filter out skipped interceptors 92 | const requestInterceptorChain = []; 93 | let synchronousRequestInterceptors = true; 94 | this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { 95 | if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { 96 | return; 97 | } 98 | 99 | synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; 100 | 101 | requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); 102 | }); 103 | 104 | const responseInterceptorChain = []; 105 | this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { 106 | responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); 107 | }); 108 | 109 | let promise; 110 | let i = 0; 111 | let len; 112 | 113 | if (!synchronousRequestInterceptors) { 114 | const chain = [dispatchRequest.bind(this), undefined]; 115 | chain.unshift.apply(chain, requestInterceptorChain); 116 | chain.push.apply(chain, responseInterceptorChain); 117 | len = chain.length; 118 | 119 | promise = Promise.resolve(config); 120 | 121 | while (i < len) { 122 | promise = promise.then(chain[i++], chain[i++]); 123 | } 124 | 125 | return promise; 126 | } 127 | 128 | len = requestInterceptorChain.length; 129 | 130 | let newConfig = config; 131 | 132 | i = 0; 133 | 134 | while (i < len) { 135 | const onFulfilled = requestInterceptorChain[i++]; 136 | const onRejected = requestInterceptorChain[i++]; 137 | try { 138 | newConfig = onFulfilled(newConfig); 139 | } catch (error) { 140 | onRejected.call(this, error); 141 | break; 142 | } 143 | } 144 | 145 | try { 146 | promise = dispatchRequest.call(this, newConfig); 147 | } catch (error) { 148 | return Promise.reject(error); 149 | } 150 | 151 | i = 0; 152 | len = responseInterceptorChain.length; 153 | 154 | while (i < len) { 155 | promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); 156 | } 157 | 158 | return promise; 159 | } 160 | 161 | getUri(config) { 162 | config = mergeConfig(this.defaults, config); 163 | const fullPath = buildFullPath(config.baseURL, config.url); 164 | return buildURL(fullPath, config.params, config.paramsSerializer); 165 | } 166 | } 167 | 168 | // Provide aliases for supported request methods 169 | utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { 170 | /*eslint func-names:0*/ 171 | Axios.prototype[method] = function(url, config) { 172 | return this.request(mergeConfig(config || {}, { 173 | method, 174 | url, 175 | data: (config || {}).data 176 | })); 177 | }; 178 | }); 179 | 180 | utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { 181 | /*eslint func-names:0*/ 182 | 183 | function generateHTTPMethod(isForm) { 184 | return function httpMethod(url, data, config) { 185 | return this.request(mergeConfig(config || {}, { 186 | method, 187 | headers: isForm ? { 188 | 'Content-Type': 'multipart/form-data' 189 | } : {}, 190 | url, 191 | data 192 | })); 193 | }; 194 | } 195 | 196 | Axios.prototype[method] = generateHTTPMethod(); 197 | 198 | Axios.prototype[method + 'Form'] = generateHTTPMethod(true); 199 | }); 200 | 201 | export default Axios; 202 | -------------------------------------------------------------------------------- /test/fixtures/1000-stderr.txt: -------------------------------------------------------------------------------- 1 | stderr 0 2 | stderr 1 3 | stderr 2 4 | stderr 3 5 | stderr 4 6 | stderr 5 7 | stderr 6 8 | stderr 7 9 | stderr 8 10 | stderr 9 11 | stderr 10 12 | stderr 11 13 | stderr 12 14 | stderr 13 15 | stderr 14 16 | stderr 15 17 | stderr 16 18 | stderr 17 19 | stderr 18 20 | stderr 19 21 | stderr 20 22 | stderr 21 23 | stderr 22 24 | stderr 23 25 | stderr 24 26 | stderr 25 27 | stderr 26 28 | stderr 27 29 | stderr 28 30 | stderr 29 31 | stderr 30 32 | stderr 31 33 | stderr 32 34 | stderr 33 35 | stderr 34 36 | stderr 35 37 | stderr 36 38 | stderr 37 39 | stderr 38 40 | stderr 39 41 | stderr 40 42 | stderr 41 43 | stderr 42 44 | stderr 43 45 | stderr 44 46 | stderr 45 47 | stderr 46 48 | stderr 47 49 | stderr 48 50 | stderr 49 51 | stderr 50 52 | stderr 51 53 | stderr 52 54 | stderr 53 55 | stderr 54 56 | stderr 55 57 | stderr 56 58 | stderr 57 59 | stderr 58 60 | stderr 59 61 | stderr 60 62 | stderr 61 63 | stderr 62 64 | stderr 63 65 | stderr 64 66 | stderr 65 67 | stderr 66 68 | stderr 67 69 | stderr 68 70 | stderr 69 71 | stderr 70 72 | stderr 71 73 | stderr 72 74 | stderr 73 75 | stderr 74 76 | stderr 75 77 | stderr 76 78 | stderr 77 79 | stderr 78 80 | stderr 79 81 | stderr 80 82 | stderr 81 83 | stderr 82 84 | stderr 83 85 | stderr 84 86 | stderr 85 87 | stderr 86 88 | stderr 87 89 | stderr 88 90 | stderr 89 91 | stderr 90 92 | stderr 91 93 | stderr 92 94 | stderr 93 95 | stderr 94 96 | stderr 95 97 | stderr 96 98 | stderr 97 99 | stderr 98 100 | stderr 99 101 | stderr 100 102 | stderr 101 103 | stderr 102 104 | stderr 103 105 | stderr 104 106 | stderr 105 107 | stderr 106 108 | stderr 107 109 | stderr 108 110 | stderr 109 111 | stderr 110 112 | stderr 111 113 | stderr 112 114 | stderr 113 115 | stderr 114 116 | stderr 115 117 | stderr 116 118 | stderr 117 119 | stderr 118 120 | stderr 119 121 | stderr 120 122 | stderr 121 123 | stderr 122 124 | stderr 123 125 | stderr 124 126 | stderr 125 127 | stderr 126 128 | stderr 127 129 | stderr 128 130 | stderr 129 131 | stderr 130 132 | stderr 131 133 | stderr 132 134 | stderr 133 135 | stderr 134 136 | stderr 135 137 | stderr 136 138 | stderr 137 139 | stderr 138 140 | stderr 139 141 | stderr 140 142 | stderr 141 143 | stderr 142 144 | stderr 143 145 | stderr 144 146 | stderr 145 147 | stderr 146 148 | stderr 147 149 | stderr 148 150 | stderr 149 151 | stderr 150 152 | stderr 151 153 | stderr 152 154 | stderr 153 155 | stderr 154 156 | stderr 155 157 | stderr 156 158 | stderr 157 159 | stderr 158 160 | stderr 159 161 | stderr 160 162 | stderr 161 163 | stderr 162 164 | stderr 163 165 | stderr 164 166 | stderr 165 167 | stderr 166 168 | stderr 167 169 | stderr 168 170 | stderr 169 171 | stderr 170 172 | stderr 171 173 | stderr 172 174 | stderr 173 175 | stderr 174 176 | stderr 175 177 | stderr 176 178 | stderr 177 179 | stderr 178 180 | stderr 179 181 | stderr 180 182 | stderr 181 183 | stderr 182 184 | stderr 183 185 | stderr 184 186 | stderr 185 187 | stderr 186 188 | stderr 187 189 | stderr 188 190 | stderr 189 191 | stderr 190 192 | stderr 191 193 | stderr 192 194 | stderr 193 195 | stderr 194 196 | stderr 195 197 | stderr 196 198 | stderr 197 199 | stderr 198 200 | stderr 199 201 | stderr 200 202 | stderr 201 203 | stderr 202 204 | stderr 203 205 | stderr 204 206 | stderr 205 207 | stderr 206 208 | stderr 207 209 | stderr 208 210 | stderr 209 211 | stderr 210 212 | stderr 211 213 | stderr 212 214 | stderr 213 215 | stderr 214 216 | stderr 215 217 | stderr 216 218 | stderr 217 219 | stderr 218 220 | stderr 219 221 | stderr 220 222 | stderr 221 223 | stderr 222 224 | stderr 223 225 | stderr 224 226 | stderr 225 227 | stderr 226 228 | stderr 227 229 | stderr 228 230 | stderr 229 231 | stderr 230 232 | stderr 231 233 | stderr 232 234 | stderr 233 235 | stderr 234 236 | stderr 235 237 | stderr 236 238 | stderr 237 239 | stderr 238 240 | stderr 239 241 | stderr 240 242 | stderr 241 243 | stderr 242 244 | stderr 243 245 | stderr 244 246 | stderr 245 247 | stderr 246 248 | stderr 247 249 | stderr 248 250 | stderr 249 251 | stderr 250 252 | stderr 251 253 | stderr 252 254 | stderr 253 255 | stderr 254 256 | stderr 255 257 | stderr 256 258 | stderr 257 259 | stderr 258 260 | stderr 259 261 | stderr 260 262 | stderr 261 263 | stderr 262 264 | stderr 263 265 | stderr 264 266 | stderr 265 267 | stderr 266 268 | stderr 267 269 | stderr 268 270 | stderr 269 271 | stderr 270 272 | stderr 271 273 | stderr 272 274 | stderr 273 275 | stderr 274 276 | stderr 275 277 | stderr 276 278 | stderr 277 279 | stderr 278 280 | stderr 279 281 | stderr 280 282 | stderr 281 283 | stderr 282 284 | stderr 283 285 | stderr 284 286 | stderr 285 287 | stderr 286 288 | stderr 287 289 | stderr 288 290 | stderr 289 291 | stderr 290 292 | stderr 291 293 | stderr 292 294 | stderr 293 295 | stderr 294 296 | stderr 295 297 | stderr 296 298 | stderr 297 299 | stderr 298 300 | stderr 299 301 | stderr 300 302 | stderr 301 303 | stderr 302 304 | stderr 303 305 | stderr 304 306 | stderr 305 307 | stderr 306 308 | stderr 307 309 | stderr 308 310 | stderr 309 311 | stderr 310 312 | stderr 311 313 | stderr 312 314 | stderr 313 315 | stderr 314 316 | stderr 315 317 | stderr 316 318 | stderr 317 319 | stderr 318 320 | stderr 319 321 | stderr 320 322 | stderr 321 323 | stderr 322 324 | stderr 323 325 | stderr 324 326 | stderr 325 327 | stderr 326 328 | stderr 327 329 | stderr 328 330 | stderr 329 331 | stderr 330 332 | stderr 331 333 | stderr 332 334 | stderr 333 335 | stderr 334 336 | stderr 335 337 | stderr 336 338 | stderr 337 339 | stderr 338 340 | stderr 339 341 | stderr 340 342 | stderr 341 343 | stderr 342 344 | stderr 343 345 | stderr 344 346 | stderr 345 347 | stderr 346 348 | stderr 347 349 | stderr 348 350 | stderr 349 351 | stderr 350 352 | stderr 351 353 | stderr 352 354 | stderr 353 355 | stderr 354 356 | stderr 355 357 | stderr 356 358 | stderr 357 359 | stderr 358 360 | stderr 359 361 | stderr 360 362 | stderr 361 363 | stderr 362 364 | stderr 363 365 | stderr 364 366 | stderr 365 367 | stderr 366 368 | stderr 367 369 | stderr 368 370 | stderr 369 371 | stderr 370 372 | stderr 371 373 | stderr 372 374 | stderr 373 375 | stderr 374 376 | stderr 375 377 | stderr 376 378 | stderr 377 379 | stderr 378 380 | stderr 379 381 | stderr 380 382 | stderr 381 383 | stderr 382 384 | stderr 383 385 | stderr 384 386 | stderr 385 387 | stderr 386 388 | stderr 387 389 | stderr 388 390 | stderr 389 391 | stderr 390 392 | stderr 391 393 | stderr 392 394 | stderr 393 395 | stderr 394 396 | stderr 395 397 | stderr 396 398 | stderr 397 399 | stderr 398 400 | stderr 399 401 | stderr 400 402 | stderr 401 403 | stderr 402 404 | stderr 403 405 | stderr 404 406 | stderr 405 407 | stderr 406 408 | stderr 407 409 | stderr 408 410 | stderr 409 411 | stderr 410 412 | stderr 411 413 | stderr 412 414 | stderr 413 415 | stderr 414 416 | stderr 415 417 | stderr 416 418 | stderr 417 419 | stderr 418 420 | stderr 419 421 | stderr 420 422 | stderr 421 423 | stderr 422 424 | stderr 423 425 | stderr 424 426 | stderr 425 427 | stderr 426 428 | stderr 427 429 | stderr 428 430 | stderr 429 431 | stderr 430 432 | stderr 431 433 | stderr 432 434 | stderr 433 435 | stderr 434 436 | stderr 435 437 | stderr 436 438 | stderr 437 439 | stderr 438 440 | stderr 439 441 | stderr 440 442 | stderr 441 443 | stderr 442 444 | stderr 443 445 | stderr 444 446 | stderr 445 447 | stderr 446 448 | stderr 447 449 | stderr 448 450 | stderr 449 451 | stderr 450 452 | stderr 451 453 | stderr 452 454 | stderr 453 455 | stderr 454 456 | stderr 455 457 | stderr 456 458 | stderr 457 459 | stderr 458 460 | stderr 459 461 | stderr 460 462 | stderr 461 463 | stderr 462 464 | stderr 463 465 | stderr 464 466 | stderr 465 467 | stderr 466 468 | stderr 467 469 | stderr 468 470 | stderr 469 471 | stderr 470 472 | stderr 471 473 | stderr 472 474 | stderr 473 475 | stderr 474 476 | stderr 475 477 | stderr 476 478 | stderr 477 479 | stderr 478 480 | stderr 479 481 | stderr 480 482 | stderr 481 483 | stderr 482 484 | stderr 483 485 | stderr 484 486 | stderr 485 487 | stderr 486 488 | stderr 487 489 | stderr 488 490 | stderr 489 491 | stderr 490 492 | stderr 491 493 | stderr 492 494 | stderr 493 495 | stderr 494 496 | stderr 495 497 | stderr 496 498 | stderr 497 499 | stderr 498 500 | stderr 499 501 | stderr 500 502 | stderr 501 503 | stderr 502 504 | stderr 503 505 | stderr 504 506 | stderr 505 507 | stderr 506 508 | stderr 507 509 | stderr 508 510 | stderr 509 511 | stderr 510 512 | stderr 511 513 | stderr 512 514 | stderr 513 515 | stderr 514 516 | stderr 515 517 | stderr 516 518 | stderr 517 519 | stderr 518 520 | stderr 519 521 | stderr 520 522 | stderr 521 523 | stderr 522 524 | stderr 523 525 | stderr 524 526 | stderr 525 527 | stderr 526 528 | stderr 527 529 | stderr 528 530 | stderr 529 531 | stderr 530 532 | stderr 531 533 | stderr 532 534 | stderr 533 535 | stderr 534 536 | stderr 535 537 | stderr 536 538 | stderr 537 539 | stderr 538 540 | stderr 539 541 | stderr 540 542 | stderr 541 543 | stderr 542 544 | stderr 543 545 | stderr 544 546 | stderr 545 547 | stderr 546 548 | stderr 547 549 | stderr 548 550 | stderr 549 551 | stderr 550 552 | stderr 551 553 | stderr 552 554 | stderr 553 555 | stderr 554 556 | stderr 555 557 | stderr 556 558 | stderr 557 559 | stderr 558 560 | stderr 559 561 | stderr 560 562 | stderr 561 563 | stderr 562 564 | stderr 563 565 | stderr 564 566 | stderr 565 567 | stderr 566 568 | stderr 567 569 | stderr 568 570 | stderr 569 571 | stderr 570 572 | stderr 571 573 | stderr 572 574 | stderr 573 575 | stderr 574 576 | stderr 575 577 | stderr 576 578 | stderr 577 579 | stderr 578 580 | stderr 579 581 | stderr 580 582 | stderr 581 583 | stderr 582 584 | stderr 583 585 | stderr 584 586 | stderr 585 587 | stderr 586 588 | stderr 587 589 | stderr 588 590 | stderr 589 591 | stderr 590 592 | stderr 591 593 | stderr 592 594 | stderr 593 595 | stderr 594 596 | stderr 595 597 | stderr 596 598 | stderr 597 599 | stderr 598 600 | stderr 599 601 | stderr 600 602 | stderr 601 603 | stderr 602 604 | stderr 603 605 | stderr 604 606 | stderr 605 607 | stderr 606 608 | stderr 607 609 | stderr 608 610 | stderr 609 611 | stderr 610 612 | stderr 611 613 | stderr 612 614 | stderr 613 615 | stderr 614 616 | stderr 615 617 | stderr 616 618 | stderr 617 619 | stderr 618 620 | stderr 619 621 | stderr 620 622 | stderr 621 623 | stderr 622 624 | stderr 623 625 | stderr 624 626 | stderr 625 627 | stderr 626 628 | stderr 627 629 | stderr 628 630 | stderr 629 631 | stderr 630 632 | stderr 631 633 | stderr 632 634 | stderr 633 635 | stderr 634 636 | stderr 635 637 | stderr 636 638 | stderr 637 639 | stderr 638 640 | stderr 639 641 | stderr 640 642 | stderr 641 643 | stderr 642 644 | stderr 643 645 | stderr 644 646 | stderr 645 647 | stderr 646 648 | stderr 647 649 | stderr 648 650 | stderr 649 651 | stderr 650 652 | stderr 651 653 | stderr 652 654 | stderr 653 655 | stderr 654 656 | stderr 655 657 | stderr 656 658 | stderr 657 659 | stderr 658 660 | stderr 659 661 | stderr 660 662 | stderr 661 663 | stderr 662 664 | stderr 663 665 | stderr 664 666 | stderr 665 667 | stderr 666 668 | stderr 667 669 | stderr 668 670 | stderr 669 671 | stderr 670 672 | stderr 671 673 | stderr 672 674 | stderr 673 675 | stderr 674 676 | stderr 675 677 | stderr 676 678 | stderr 677 679 | stderr 678 680 | stderr 679 681 | stderr 680 682 | stderr 681 683 | stderr 682 684 | stderr 683 685 | stderr 684 686 | stderr 685 687 | stderr 686 688 | stderr 687 689 | stderr 688 690 | stderr 689 691 | stderr 690 692 | stderr 691 693 | stderr 692 694 | stderr 693 695 | stderr 694 696 | stderr 695 697 | stderr 696 698 | stderr 697 699 | stderr 698 700 | stderr 699 701 | stderr 700 702 | stderr 701 703 | stderr 702 704 | stderr 703 705 | stderr 704 706 | stderr 705 707 | stderr 706 708 | stderr 707 709 | stderr 708 710 | stderr 709 711 | stderr 710 712 | stderr 711 713 | stderr 712 714 | stderr 713 715 | stderr 714 716 | stderr 715 717 | stderr 716 718 | stderr 717 719 | stderr 718 720 | stderr 719 721 | stderr 720 722 | stderr 721 723 | stderr 722 724 | stderr 723 725 | stderr 724 726 | stderr 725 727 | stderr 726 728 | stderr 727 729 | stderr 728 730 | stderr 729 731 | stderr 730 732 | stderr 731 733 | stderr 732 734 | stderr 733 735 | stderr 734 736 | stderr 735 737 | stderr 736 738 | stderr 737 739 | stderr 738 740 | stderr 739 741 | stderr 740 742 | stderr 741 743 | stderr 742 744 | stderr 743 745 | stderr 744 746 | stderr 745 747 | stderr 746 748 | stderr 747 749 | stderr 748 750 | stderr 749 751 | stderr 750 752 | stderr 751 753 | stderr 752 754 | stderr 753 755 | stderr 754 756 | stderr 755 757 | stderr 756 758 | stderr 757 759 | stderr 758 760 | stderr 759 761 | stderr 760 762 | stderr 761 763 | stderr 762 764 | stderr 763 765 | stderr 764 766 | stderr 765 767 | stderr 766 768 | stderr 767 769 | stderr 768 770 | stderr 769 771 | stderr 770 772 | stderr 771 773 | stderr 772 774 | stderr 773 775 | stderr 774 776 | stderr 775 777 | stderr 776 778 | stderr 777 779 | stderr 778 780 | stderr 779 781 | stderr 780 782 | stderr 781 783 | stderr 782 784 | stderr 783 785 | stderr 784 786 | stderr 785 787 | stderr 786 788 | stderr 787 789 | stderr 788 790 | stderr 789 791 | stderr 790 792 | stderr 791 793 | stderr 792 794 | stderr 793 795 | stderr 794 796 | stderr 795 797 | stderr 796 798 | stderr 797 799 | stderr 798 800 | stderr 799 801 | stderr 800 802 | stderr 801 803 | stderr 802 804 | stderr 803 805 | stderr 804 806 | stderr 805 807 | stderr 806 808 | stderr 807 809 | stderr 808 810 | stderr 809 811 | stderr 810 812 | stderr 811 813 | stderr 812 814 | stderr 813 815 | stderr 814 816 | stderr 815 817 | stderr 816 818 | stderr 817 819 | stderr 818 820 | stderr 819 821 | stderr 820 822 | stderr 821 823 | stderr 822 824 | stderr 823 825 | stderr 824 826 | stderr 825 827 | stderr 826 828 | stderr 827 829 | stderr 828 830 | stderr 829 831 | stderr 830 832 | stderr 831 833 | stderr 832 834 | stderr 833 835 | stderr 834 836 | stderr 835 837 | stderr 836 838 | stderr 837 839 | stderr 838 840 | stderr 839 841 | stderr 840 842 | stderr 841 843 | stderr 842 844 | stderr 843 845 | stderr 844 846 | stderr 845 847 | stderr 846 848 | stderr 847 849 | stderr 848 850 | stderr 849 851 | stderr 850 852 | stderr 851 853 | stderr 852 854 | stderr 853 855 | stderr 854 856 | stderr 855 857 | stderr 856 858 | stderr 857 859 | stderr 858 860 | stderr 859 861 | stderr 860 862 | stderr 861 863 | stderr 862 864 | stderr 863 865 | stderr 864 866 | stderr 865 867 | stderr 866 868 | stderr 867 869 | stderr 868 870 | stderr 869 871 | stderr 870 872 | stderr 871 873 | stderr 872 874 | stderr 873 875 | stderr 874 876 | stderr 875 877 | stderr 876 878 | stderr 877 879 | stderr 878 880 | stderr 879 881 | stderr 880 882 | stderr 881 883 | stderr 882 884 | stderr 883 885 | stderr 884 886 | stderr 885 887 | stderr 886 888 | stderr 887 889 | stderr 888 890 | stderr 889 891 | stderr 890 892 | stderr 891 893 | stderr 892 894 | stderr 893 895 | stderr 894 896 | stderr 895 897 | stderr 896 898 | stderr 897 899 | stderr 898 900 | stderr 899 901 | stderr 900 902 | stderr 901 903 | stderr 902 904 | stderr 903 905 | stderr 904 906 | stderr 905 907 | stderr 906 908 | stderr 907 909 | stderr 908 910 | stderr 909 911 | stderr 910 912 | stderr 911 913 | stderr 912 914 | stderr 913 915 | stderr 914 916 | stderr 915 917 | stderr 916 918 | stderr 917 919 | stderr 918 920 | stderr 919 921 | stderr 920 922 | stderr 921 923 | stderr 922 924 | stderr 923 925 | stderr 924 926 | stderr 925 927 | stderr 926 928 | stderr 927 929 | stderr 928 930 | stderr 929 931 | stderr 930 932 | stderr 931 933 | stderr 932 934 | stderr 933 935 | stderr 934 936 | stderr 935 937 | stderr 936 938 | stderr 937 939 | stderr 938 940 | stderr 939 941 | stderr 940 942 | stderr 941 943 | stderr 942 944 | stderr 943 945 | stderr 944 946 | stderr 945 947 | stderr 946 948 | stderr 947 949 | stderr 948 950 | stderr 949 951 | stderr 950 952 | stderr 951 953 | stderr 952 954 | stderr 953 955 | stderr 954 956 | stderr 955 957 | stderr 956 958 | stderr 957 959 | stderr 958 960 | stderr 959 961 | stderr 960 962 | stderr 961 963 | stderr 962 964 | stderr 963 965 | stderr 964 966 | stderr 965 967 | stderr 966 968 | stderr 967 969 | stderr 968 970 | stderr 969 971 | stderr 970 972 | stderr 971 973 | stderr 972 974 | stderr 973 975 | stderr 974 976 | stderr 975 977 | stderr 976 978 | stderr 977 979 | stderr 978 980 | stderr 979 981 | stderr 980 982 | stderr 981 983 | stderr 982 984 | stderr 983 985 | stderr 984 986 | stderr 985 987 | stderr 986 988 | stderr 987 989 | stderr 988 990 | stderr 989 991 | stderr 990 992 | stderr 991 993 | stderr 992 994 | stderr 993 995 | stderr 994 996 | stderr 995 997 | stderr 996 998 | stderr 997 999 | stderr 998 1000 | stderr 999 1001 | -------------------------------------------------------------------------------- /test/fixtures/1000-stdout.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stdout 1 3 | stdout 2 4 | stdout 3 5 | stdout 4 6 | stdout 5 7 | stdout 6 8 | stdout 7 9 | stdout 8 10 | stdout 9 11 | stdout 10 12 | stdout 11 13 | stdout 12 14 | stdout 13 15 | stdout 14 16 | stdout 15 17 | stdout 16 18 | stdout 17 19 | stdout 18 20 | stdout 19 21 | stdout 20 22 | stdout 21 23 | stdout 22 24 | stdout 23 25 | stdout 24 26 | stdout 25 27 | stdout 26 28 | stdout 27 29 | stdout 28 30 | stdout 29 31 | stdout 30 32 | stdout 31 33 | stdout 32 34 | stdout 33 35 | stdout 34 36 | stdout 35 37 | stdout 36 38 | stdout 37 39 | stdout 38 40 | stdout 39 41 | stdout 40 42 | stdout 41 43 | stdout 42 44 | stdout 43 45 | stdout 44 46 | stdout 45 47 | stdout 46 48 | stdout 47 49 | stdout 48 50 | stdout 49 51 | stdout 50 52 | stdout 51 53 | stdout 52 54 | stdout 53 55 | stdout 54 56 | stdout 55 57 | stdout 56 58 | stdout 57 59 | stdout 58 60 | stdout 59 61 | stdout 60 62 | stdout 61 63 | stdout 62 64 | stdout 63 65 | stdout 64 66 | stdout 65 67 | stdout 66 68 | stdout 67 69 | stdout 68 70 | stdout 69 71 | stdout 70 72 | stdout 71 73 | stdout 72 74 | stdout 73 75 | stdout 74 76 | stdout 75 77 | stdout 76 78 | stdout 77 79 | stdout 78 80 | stdout 79 81 | stdout 80 82 | stdout 81 83 | stdout 82 84 | stdout 83 85 | stdout 84 86 | stdout 85 87 | stdout 86 88 | stdout 87 89 | stdout 88 90 | stdout 89 91 | stdout 90 92 | stdout 91 93 | stdout 92 94 | stdout 93 95 | stdout 94 96 | stdout 95 97 | stdout 96 98 | stdout 97 99 | stdout 98 100 | stdout 99 101 | stdout 100 102 | stdout 101 103 | stdout 102 104 | stdout 103 105 | stdout 104 106 | stdout 105 107 | stdout 106 108 | stdout 107 109 | stdout 108 110 | stdout 109 111 | stdout 110 112 | stdout 111 113 | stdout 112 114 | stdout 113 115 | stdout 114 116 | stdout 115 117 | stdout 116 118 | stdout 117 119 | stdout 118 120 | stdout 119 121 | stdout 120 122 | stdout 121 123 | stdout 122 124 | stdout 123 125 | stdout 124 126 | stdout 125 127 | stdout 126 128 | stdout 127 129 | stdout 128 130 | stdout 129 131 | stdout 130 132 | stdout 131 133 | stdout 132 134 | stdout 133 135 | stdout 134 136 | stdout 135 137 | stdout 136 138 | stdout 137 139 | stdout 138 140 | stdout 139 141 | stdout 140 142 | stdout 141 143 | stdout 142 144 | stdout 143 145 | stdout 144 146 | stdout 145 147 | stdout 146 148 | stdout 147 149 | stdout 148 150 | stdout 149 151 | stdout 150 152 | stdout 151 153 | stdout 152 154 | stdout 153 155 | stdout 154 156 | stdout 155 157 | stdout 156 158 | stdout 157 159 | stdout 158 160 | stdout 159 161 | stdout 160 162 | stdout 161 163 | stdout 162 164 | stdout 163 165 | stdout 164 166 | stdout 165 167 | stdout 166 168 | stdout 167 169 | stdout 168 170 | stdout 169 171 | stdout 170 172 | stdout 171 173 | stdout 172 174 | stdout 173 175 | stdout 174 176 | stdout 175 177 | stdout 176 178 | stdout 177 179 | stdout 178 180 | stdout 179 181 | stdout 180 182 | stdout 181 183 | stdout 182 184 | stdout 183 185 | stdout 184 186 | stdout 185 187 | stdout 186 188 | stdout 187 189 | stdout 188 190 | stdout 189 191 | stdout 190 192 | stdout 191 193 | stdout 192 194 | stdout 193 195 | stdout 194 196 | stdout 195 197 | stdout 196 198 | stdout 197 199 | stdout 198 200 | stdout 199 201 | stdout 200 202 | stdout 201 203 | stdout 202 204 | stdout 203 205 | stdout 204 206 | stdout 205 207 | stdout 206 208 | stdout 207 209 | stdout 208 210 | stdout 209 211 | stdout 210 212 | stdout 211 213 | stdout 212 214 | stdout 213 215 | stdout 214 216 | stdout 215 217 | stdout 216 218 | stdout 217 219 | stdout 218 220 | stdout 219 221 | stdout 220 222 | stdout 221 223 | stdout 222 224 | stdout 223 225 | stdout 224 226 | stdout 225 227 | stdout 226 228 | stdout 227 229 | stdout 228 230 | stdout 229 231 | stdout 230 232 | stdout 231 233 | stdout 232 234 | stdout 233 235 | stdout 234 236 | stdout 235 237 | stdout 236 238 | stdout 237 239 | stdout 238 240 | stdout 239 241 | stdout 240 242 | stdout 241 243 | stdout 242 244 | stdout 243 245 | stdout 244 246 | stdout 245 247 | stdout 246 248 | stdout 247 249 | stdout 248 250 | stdout 249 251 | stdout 250 252 | stdout 251 253 | stdout 252 254 | stdout 253 255 | stdout 254 256 | stdout 255 257 | stdout 256 258 | stdout 257 259 | stdout 258 260 | stdout 259 261 | stdout 260 262 | stdout 261 263 | stdout 262 264 | stdout 263 265 | stdout 264 266 | stdout 265 267 | stdout 266 268 | stdout 267 269 | stdout 268 270 | stdout 269 271 | stdout 270 272 | stdout 271 273 | stdout 272 274 | stdout 273 275 | stdout 274 276 | stdout 275 277 | stdout 276 278 | stdout 277 279 | stdout 278 280 | stdout 279 281 | stdout 280 282 | stdout 281 283 | stdout 282 284 | stdout 283 285 | stdout 284 286 | stdout 285 287 | stdout 286 288 | stdout 287 289 | stdout 288 290 | stdout 289 291 | stdout 290 292 | stdout 291 293 | stdout 292 294 | stdout 293 295 | stdout 294 296 | stdout 295 297 | stdout 296 298 | stdout 297 299 | stdout 298 300 | stdout 299 301 | stdout 300 302 | stdout 301 303 | stdout 302 304 | stdout 303 305 | stdout 304 306 | stdout 305 307 | stdout 306 308 | stdout 307 309 | stdout 308 310 | stdout 309 311 | stdout 310 312 | stdout 311 313 | stdout 312 314 | stdout 313 315 | stdout 314 316 | stdout 315 317 | stdout 316 318 | stdout 317 319 | stdout 318 320 | stdout 319 321 | stdout 320 322 | stdout 321 323 | stdout 322 324 | stdout 323 325 | stdout 324 326 | stdout 325 327 | stdout 326 328 | stdout 327 329 | stdout 328 330 | stdout 329 331 | stdout 330 332 | stdout 331 333 | stdout 332 334 | stdout 333 335 | stdout 334 336 | stdout 335 337 | stdout 336 338 | stdout 337 339 | stdout 338 340 | stdout 339 341 | stdout 340 342 | stdout 341 343 | stdout 342 344 | stdout 343 345 | stdout 344 346 | stdout 345 347 | stdout 346 348 | stdout 347 349 | stdout 348 350 | stdout 349 351 | stdout 350 352 | stdout 351 353 | stdout 352 354 | stdout 353 355 | stdout 354 356 | stdout 355 357 | stdout 356 358 | stdout 357 359 | stdout 358 360 | stdout 359 361 | stdout 360 362 | stdout 361 363 | stdout 362 364 | stdout 363 365 | stdout 364 366 | stdout 365 367 | stdout 366 368 | stdout 367 369 | stdout 368 370 | stdout 369 371 | stdout 370 372 | stdout 371 373 | stdout 372 374 | stdout 373 375 | stdout 374 376 | stdout 375 377 | stdout 376 378 | stdout 377 379 | stdout 378 380 | stdout 379 381 | stdout 380 382 | stdout 381 383 | stdout 382 384 | stdout 383 385 | stdout 384 386 | stdout 385 387 | stdout 386 388 | stdout 387 389 | stdout 388 390 | stdout 389 391 | stdout 390 392 | stdout 391 393 | stdout 392 394 | stdout 393 395 | stdout 394 396 | stdout 395 397 | stdout 396 398 | stdout 397 399 | stdout 398 400 | stdout 399 401 | stdout 400 402 | stdout 401 403 | stdout 402 404 | stdout 403 405 | stdout 404 406 | stdout 405 407 | stdout 406 408 | stdout 407 409 | stdout 408 410 | stdout 409 411 | stdout 410 412 | stdout 411 413 | stdout 412 414 | stdout 413 415 | stdout 414 416 | stdout 415 417 | stdout 416 418 | stdout 417 419 | stdout 418 420 | stdout 419 421 | stdout 420 422 | stdout 421 423 | stdout 422 424 | stdout 423 425 | stdout 424 426 | stdout 425 427 | stdout 426 428 | stdout 427 429 | stdout 428 430 | stdout 429 431 | stdout 430 432 | stdout 431 433 | stdout 432 434 | stdout 433 435 | stdout 434 436 | stdout 435 437 | stdout 436 438 | stdout 437 439 | stdout 438 440 | stdout 439 441 | stdout 440 442 | stdout 441 443 | stdout 442 444 | stdout 443 445 | stdout 444 446 | stdout 445 447 | stdout 446 448 | stdout 447 449 | stdout 448 450 | stdout 449 451 | stdout 450 452 | stdout 451 453 | stdout 452 454 | stdout 453 455 | stdout 454 456 | stdout 455 457 | stdout 456 458 | stdout 457 459 | stdout 458 460 | stdout 459 461 | stdout 460 462 | stdout 461 463 | stdout 462 464 | stdout 463 465 | stdout 464 466 | stdout 465 467 | stdout 466 468 | stdout 467 469 | stdout 468 470 | stdout 469 471 | stdout 470 472 | stdout 471 473 | stdout 472 474 | stdout 473 475 | stdout 474 476 | stdout 475 477 | stdout 476 478 | stdout 477 479 | stdout 478 480 | stdout 479 481 | stdout 480 482 | stdout 481 483 | stdout 482 484 | stdout 483 485 | stdout 484 486 | stdout 485 487 | stdout 486 488 | stdout 487 489 | stdout 488 490 | stdout 489 491 | stdout 490 492 | stdout 491 493 | stdout 492 494 | stdout 493 495 | stdout 494 496 | stdout 495 497 | stdout 496 498 | stdout 497 499 | stdout 498 500 | stdout 499 501 | stdout 500 502 | stdout 501 503 | stdout 502 504 | stdout 503 505 | stdout 504 506 | stdout 505 507 | stdout 506 508 | stdout 507 509 | stdout 508 510 | stdout 509 511 | stdout 510 512 | stdout 511 513 | stdout 512 514 | stdout 513 515 | stdout 514 516 | stdout 515 517 | stdout 516 518 | stdout 517 519 | stdout 518 520 | stdout 519 521 | stdout 520 522 | stdout 521 523 | stdout 522 524 | stdout 523 525 | stdout 524 526 | stdout 525 527 | stdout 526 528 | stdout 527 529 | stdout 528 530 | stdout 529 531 | stdout 530 532 | stdout 531 533 | stdout 532 534 | stdout 533 535 | stdout 534 536 | stdout 535 537 | stdout 536 538 | stdout 537 539 | stdout 538 540 | stdout 539 541 | stdout 540 542 | stdout 541 543 | stdout 542 544 | stdout 543 545 | stdout 544 546 | stdout 545 547 | stdout 546 548 | stdout 547 549 | stdout 548 550 | stdout 549 551 | stdout 550 552 | stdout 551 553 | stdout 552 554 | stdout 553 555 | stdout 554 556 | stdout 555 557 | stdout 556 558 | stdout 557 559 | stdout 558 560 | stdout 559 561 | stdout 560 562 | stdout 561 563 | stdout 562 564 | stdout 563 565 | stdout 564 566 | stdout 565 567 | stdout 566 568 | stdout 567 569 | stdout 568 570 | stdout 569 571 | stdout 570 572 | stdout 571 573 | stdout 572 574 | stdout 573 575 | stdout 574 576 | stdout 575 577 | stdout 576 578 | stdout 577 579 | stdout 578 580 | stdout 579 581 | stdout 580 582 | stdout 581 583 | stdout 582 584 | stdout 583 585 | stdout 584 586 | stdout 585 587 | stdout 586 588 | stdout 587 589 | stdout 588 590 | stdout 589 591 | stdout 590 592 | stdout 591 593 | stdout 592 594 | stdout 593 595 | stdout 594 596 | stdout 595 597 | stdout 596 598 | stdout 597 599 | stdout 598 600 | stdout 599 601 | stdout 600 602 | stdout 601 603 | stdout 602 604 | stdout 603 605 | stdout 604 606 | stdout 605 607 | stdout 606 608 | stdout 607 609 | stdout 608 610 | stdout 609 611 | stdout 610 612 | stdout 611 613 | stdout 612 614 | stdout 613 615 | stdout 614 616 | stdout 615 617 | stdout 616 618 | stdout 617 619 | stdout 618 620 | stdout 619 621 | stdout 620 622 | stdout 621 623 | stdout 622 624 | stdout 623 625 | stdout 624 626 | stdout 625 627 | stdout 626 628 | stdout 627 629 | stdout 628 630 | stdout 629 631 | stdout 630 632 | stdout 631 633 | stdout 632 634 | stdout 633 635 | stdout 634 636 | stdout 635 637 | stdout 636 638 | stdout 637 639 | stdout 638 640 | stdout 639 641 | stdout 640 642 | stdout 641 643 | stdout 642 644 | stdout 643 645 | stdout 644 646 | stdout 645 647 | stdout 646 648 | stdout 647 649 | stdout 648 650 | stdout 649 651 | stdout 650 652 | stdout 651 653 | stdout 652 654 | stdout 653 655 | stdout 654 656 | stdout 655 657 | stdout 656 658 | stdout 657 659 | stdout 658 660 | stdout 659 661 | stdout 660 662 | stdout 661 663 | stdout 662 664 | stdout 663 665 | stdout 664 666 | stdout 665 667 | stdout 666 668 | stdout 667 669 | stdout 668 670 | stdout 669 671 | stdout 670 672 | stdout 671 673 | stdout 672 674 | stdout 673 675 | stdout 674 676 | stdout 675 677 | stdout 676 678 | stdout 677 679 | stdout 678 680 | stdout 679 681 | stdout 680 682 | stdout 681 683 | stdout 682 684 | stdout 683 685 | stdout 684 686 | stdout 685 687 | stdout 686 688 | stdout 687 689 | stdout 688 690 | stdout 689 691 | stdout 690 692 | stdout 691 693 | stdout 692 694 | stdout 693 695 | stdout 694 696 | stdout 695 697 | stdout 696 698 | stdout 697 699 | stdout 698 700 | stdout 699 701 | stdout 700 702 | stdout 701 703 | stdout 702 704 | stdout 703 705 | stdout 704 706 | stdout 705 707 | stdout 706 708 | stdout 707 709 | stdout 708 710 | stdout 709 711 | stdout 710 712 | stdout 711 713 | stdout 712 714 | stdout 713 715 | stdout 714 716 | stdout 715 717 | stdout 716 718 | stdout 717 719 | stdout 718 720 | stdout 719 721 | stdout 720 722 | stdout 721 723 | stdout 722 724 | stdout 723 725 | stdout 724 726 | stdout 725 727 | stdout 726 728 | stdout 727 729 | stdout 728 730 | stdout 729 731 | stdout 730 732 | stdout 731 733 | stdout 732 734 | stdout 733 735 | stdout 734 736 | stdout 735 737 | stdout 736 738 | stdout 737 739 | stdout 738 740 | stdout 739 741 | stdout 740 742 | stdout 741 743 | stdout 742 744 | stdout 743 745 | stdout 744 746 | stdout 745 747 | stdout 746 748 | stdout 747 749 | stdout 748 750 | stdout 749 751 | stdout 750 752 | stdout 751 753 | stdout 752 754 | stdout 753 755 | stdout 754 756 | stdout 755 757 | stdout 756 758 | stdout 757 759 | stdout 758 760 | stdout 759 761 | stdout 760 762 | stdout 761 763 | stdout 762 764 | stdout 763 765 | stdout 764 766 | stdout 765 767 | stdout 766 768 | stdout 767 769 | stdout 768 770 | stdout 769 771 | stdout 770 772 | stdout 771 773 | stdout 772 774 | stdout 773 775 | stdout 774 776 | stdout 775 777 | stdout 776 778 | stdout 777 779 | stdout 778 780 | stdout 779 781 | stdout 780 782 | stdout 781 783 | stdout 782 784 | stdout 783 785 | stdout 784 786 | stdout 785 787 | stdout 786 788 | stdout 787 789 | stdout 788 790 | stdout 789 791 | stdout 790 792 | stdout 791 793 | stdout 792 794 | stdout 793 795 | stdout 794 796 | stdout 795 797 | stdout 796 798 | stdout 797 799 | stdout 798 800 | stdout 799 801 | stdout 800 802 | stdout 801 803 | stdout 802 804 | stdout 803 805 | stdout 804 806 | stdout 805 807 | stdout 806 808 | stdout 807 809 | stdout 808 810 | stdout 809 811 | stdout 810 812 | stdout 811 813 | stdout 812 814 | stdout 813 815 | stdout 814 816 | stdout 815 817 | stdout 816 818 | stdout 817 819 | stdout 818 820 | stdout 819 821 | stdout 820 822 | stdout 821 823 | stdout 822 824 | stdout 823 825 | stdout 824 826 | stdout 825 827 | stdout 826 828 | stdout 827 829 | stdout 828 830 | stdout 829 831 | stdout 830 832 | stdout 831 833 | stdout 832 834 | stdout 833 835 | stdout 834 836 | stdout 835 837 | stdout 836 838 | stdout 837 839 | stdout 838 840 | stdout 839 841 | stdout 840 842 | stdout 841 843 | stdout 842 844 | stdout 843 845 | stdout 844 846 | stdout 845 847 | stdout 846 848 | stdout 847 849 | stdout 848 850 | stdout 849 851 | stdout 850 852 | stdout 851 853 | stdout 852 854 | stdout 853 855 | stdout 854 856 | stdout 855 857 | stdout 856 858 | stdout 857 859 | stdout 858 860 | stdout 859 861 | stdout 860 862 | stdout 861 863 | stdout 862 864 | stdout 863 865 | stdout 864 866 | stdout 865 867 | stdout 866 868 | stdout 867 869 | stdout 868 870 | stdout 869 871 | stdout 870 872 | stdout 871 873 | stdout 872 874 | stdout 873 875 | stdout 874 876 | stdout 875 877 | stdout 876 878 | stdout 877 879 | stdout 878 880 | stdout 879 881 | stdout 880 882 | stdout 881 883 | stdout 882 884 | stdout 883 885 | stdout 884 886 | stdout 885 887 | stdout 886 888 | stdout 887 889 | stdout 888 890 | stdout 889 891 | stdout 890 892 | stdout 891 893 | stdout 892 894 | stdout 893 895 | stdout 894 896 | stdout 895 897 | stdout 896 898 | stdout 897 899 | stdout 898 900 | stdout 899 901 | stdout 900 902 | stdout 901 903 | stdout 902 904 | stdout 903 905 | stdout 904 906 | stdout 905 907 | stdout 906 908 | stdout 907 909 | stdout 908 910 | stdout 909 911 | stdout 910 912 | stdout 911 913 | stdout 912 914 | stdout 913 915 | stdout 914 916 | stdout 915 917 | stdout 916 918 | stdout 917 919 | stdout 918 920 | stdout 919 921 | stdout 920 922 | stdout 921 923 | stdout 922 924 | stdout 923 925 | stdout 924 926 | stdout 925 927 | stdout 926 928 | stdout 927 929 | stdout 928 930 | stdout 929 931 | stdout 930 932 | stdout 931 933 | stdout 932 934 | stdout 933 935 | stdout 934 936 | stdout 935 937 | stdout 936 938 | stdout 937 939 | stdout 938 940 | stdout 939 941 | stdout 940 942 | stdout 941 943 | stdout 942 944 | stdout 943 945 | stdout 944 946 | stdout 945 947 | stdout 946 948 | stdout 947 949 | stdout 948 950 | stdout 949 951 | stdout 950 952 | stdout 951 953 | stdout 952 954 | stdout 953 955 | stdout 954 956 | stdout 955 957 | stdout 956 958 | stdout 957 959 | stdout 958 960 | stdout 959 961 | stdout 960 962 | stdout 961 963 | stdout 962 964 | stdout 963 965 | stdout 964 966 | stdout 965 967 | stdout 966 968 | stdout 967 969 | stdout 968 970 | stdout 969 971 | stdout 970 972 | stdout 971 973 | stdout 972 974 | stdout 973 975 | stdout 974 976 | stdout 975 977 | stdout 976 978 | stdout 977 979 | stdout 978 980 | stdout 979 981 | stdout 980 982 | stdout 981 983 | stdout 982 984 | stdout 983 985 | stdout 984 986 | stdout 985 987 | stdout 986 988 | stdout 987 989 | stdout 988 990 | stdout 989 991 | stdout 990 992 | stdout 991 993 | stdout 992 994 | stdout 993 995 | stdout 994 996 | stdout 995 997 | stdout 996 998 | stdout 997 999 | stdout 998 1000 | stdout 999 1001 | -------------------------------------------------------------------------------- /test/scope.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Yusuke Suzuki 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 | ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY 17 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | */ 24 | "use strict"; 25 | 26 | /* eslint-disable no-underscore-dangle */ 27 | /* eslint-disable no-undefined */ 28 | 29 | const Syntax = require("estraverse").Syntax; 30 | 31 | const Reference = require("./reference"); 32 | const Variable = require("./variable"); 33 | const Definition = require("./definition").Definition; 34 | const assert = require("assert"); 35 | 36 | /** 37 | * Test if scope is struct 38 | * @param {Scope} scope - scope 39 | * @param {Block} block - block 40 | * @param {boolean} isMethodDefinition - is method definition 41 | * @param {boolean} useDirective - use directive 42 | * @returns {boolean} is strict scope 43 | */ 44 | function isStrictScope(scope, block, isMethodDefinition, useDirective) { 45 | let body; 46 | 47 | // When upper scope is exists and strict, inner scope is also strict. 48 | if (scope.upper && scope.upper.isStrict) { 49 | return true; 50 | } 51 | 52 | if (isMethodDefinition) { 53 | return true; 54 | } 55 | 56 | if (scope.type === "class" || scope.type === "module") { 57 | return true; 58 | } 59 | 60 | if (scope.type === "block" || scope.type === "switch") { 61 | return false; 62 | } 63 | 64 | if (scope.type === "function") { 65 | if (block.type === Syntax.ArrowFunctionExpression && block.body.type !== Syntax.BlockStatement) { 66 | return false; 67 | } 68 | 69 | if (block.type === Syntax.Program) { 70 | body = block; 71 | } else { 72 | body = block.body; 73 | } 74 | 75 | if (!body) { 76 | return false; 77 | } 78 | } else if (scope.type === "global") { 79 | body = block; 80 | } else { 81 | return false; 82 | } 83 | 84 | // Search 'use strict' directive. 85 | if (useDirective) { 86 | for (let i = 0, iz = body.body.length; i < iz; ++i) { 87 | const stmt = body.body[i]; 88 | 89 | if (stmt.type !== Syntax.DirectiveStatement) { 90 | break; 91 | } 92 | if (stmt.raw === "\"use strict\"" || stmt.raw === "'use strict'") { 93 | return true; 94 | } 95 | } 96 | } else { 97 | for (let i = 0, iz = body.body.length; i < iz; ++i) { 98 | const stmt = body.body[i]; 99 | 100 | if (stmt.type !== Syntax.ExpressionStatement) { 101 | break; 102 | } 103 | const expr = stmt.expression; 104 | 105 | if (expr.type !== Syntax.Literal || typeof expr.value !== "string") { 106 | break; 107 | } 108 | if (expr.raw !== null && expr.raw !== undefined) { 109 | if (expr.raw === "\"use strict\"" || expr.raw === "'use strict'") { 110 | return true; 111 | } 112 | } else { 113 | if (expr.value === "use strict") { 114 | return true; 115 | } 116 | } 117 | } 118 | } 119 | return false; 120 | } 121 | 122 | /** 123 | * Register scope 124 | * @param {ScopeManager} scopeManager - scope manager 125 | * @param {Scope} scope - scope 126 | * @returns {void} 127 | */ 128 | function registerScope(scopeManager, scope) { 129 | scopeManager.scopes.push(scope); 130 | 131 | const scopes = scopeManager.__nodeToScope.get(scope.block); 132 | 133 | if (scopes) { 134 | scopes.push(scope); 135 | } else { 136 | scopeManager.__nodeToScope.set(scope.block, [scope]); 137 | } 138 | } 139 | 140 | /** 141 | * Should be statically 142 | * @param {Object} def - def 143 | * @returns {boolean} should be statically 144 | */ 145 | function shouldBeStatically(def) { 146 | return ( 147 | (def.type === Variable.ClassName) || 148 | (def.type === Variable.Variable && def.parent.kind !== "var") 149 | ); 150 | } 151 | 152 | /** 153 | * @class Scope 154 | */ 155 | class Scope { 156 | constructor(scopeManager, type, upperScope, block, isMethodDefinition) { 157 | 158 | /** 159 | * One of 'module', 'block', 'switch', 'function', 'catch', 'with', 'function', 'class', 'global'. 160 | * @member {String} Scope#type 161 | */ 162 | this.type = type; 163 | 164 | /** 165 | * The scoped {@link Variable}s of this scope, as { Variable.name 166 | * : Variable }. 167 | * @member {Map} Scope#set 168 | */ 169 | this.set = new Map(); 170 | 171 | /** 172 | * The tainted variables of this scope, as { Variable.name : 173 | * boolean }. 174 | * @member {Map} Scope#taints */ 175 | this.taints = new Map(); 176 | 177 | /** 178 | * Generally, through the lexical scoping of JS you can always know 179 | * which variable an identifier in the source code refers to. There are 180 | * a few exceptions to this rule. With 'global' and 'with' scopes you 181 | * can only decide at runtime which variable a reference refers to. 182 | * Moreover, if 'eval()' is used in a scope, it might introduce new 183 | * bindings in this or its parent scopes. 184 | * All those scopes are considered 'dynamic'. 185 | * @member {boolean} Scope#dynamic 186 | */ 187 | this.dynamic = this.type === "global" || this.type === "with"; 188 | 189 | /** 190 | * A reference to the scope-defining syntax node. 191 | * @member {espree.Node} Scope#block 192 | */ 193 | this.block = block; 194 | 195 | /** 196 | * The {@link Reference|references} that are not resolved with this scope. 197 | * @member {Reference[]} Scope#through 198 | */ 199 | this.through = []; 200 | 201 | /** 202 | * The scoped {@link Variable}s of this scope. In the case of a 203 | * 'function' scope this includes the automatic argument arguments as 204 | * its first element, as well as all further formal arguments. 205 | * @member {Variable[]} Scope#variables 206 | */ 207 | this.variables = []; 208 | 209 | /** 210 | * Any variable {@link Reference|reference} found in this scope. This 211 | * includes occurrences of local variables as well as variables from 212 | * parent scopes (including the global scope). For local variables 213 | * this also includes defining occurrences (like in a 'var' statement). 214 | * In a 'function' scope this does not include the occurrences of the 215 | * formal parameter in the parameter list. 216 | * @member {Reference[]} Scope#references 217 | */ 218 | this.references = []; 219 | 220 | /** 221 | * For 'global' and 'function' scopes, this is a self-reference. For 222 | * other scope types this is the variableScope value of the 223 | * parent scope. 224 | * @member {Scope} Scope#variableScope 225 | */ 226 | this.variableScope = 227 | (this.type === "global" || this.type === "function" || this.type === "module") ? this : upperScope.variableScope; 228 | 229 | /** 230 | * Whether this scope is created by a FunctionExpression. 231 | * @member {boolean} Scope#functionExpressionScope 232 | */ 233 | this.functionExpressionScope = false; 234 | 235 | /** 236 | * Whether this is a scope that contains an 'eval()' invocation. 237 | * @member {boolean} Scope#directCallToEvalScope 238 | */ 239 | this.directCallToEvalScope = false; 240 | 241 | /** 242 | * @member {boolean} Scope#thisFound 243 | */ 244 | this.thisFound = false; 245 | 246 | this.__left = []; 247 | 248 | /** 249 | * Reference to the parent {@link Scope|scope}. 250 | * @member {Scope} Scope#upper 251 | */ 252 | this.upper = upperScope; 253 | 254 | /** 255 | * Whether 'use strict' is in effect in this scope. 256 | * @member {boolean} Scope#isStrict 257 | */ 258 | this.isStrict = isStrictScope(this, block, isMethodDefinition, scopeManager.__useDirective()); 259 | 260 | /** 261 | * List of nested {@link Scope}s. 262 | * @member {Scope[]} Scope#childScopes 263 | */ 264 | this.childScopes = []; 265 | if (this.upper) { 266 | this.upper.childScopes.push(this); 267 | } 268 | 269 | this.__declaredVariables = scopeManager.__declaredVariables; 270 | 271 | registerScope(scopeManager, this); 272 | } 273 | 274 | __shouldStaticallyClose(scopeManager) { 275 | return (!this.dynamic || scopeManager.__isOptimistic()); 276 | } 277 | 278 | __shouldStaticallyCloseForGlobal(ref) { 279 | 280 | // On global scope, let/const/class declarations should be resolved statically. 281 | const name = ref.identifier.name; 282 | 283 | if (!this.set.has(name)) { 284 | return false; 285 | } 286 | 287 | const variable = this.set.get(name); 288 | const defs = variable.defs; 289 | 290 | return defs.length > 0 && defs.every(shouldBeStatically); 291 | } 292 | 293 | __staticCloseRef(ref) { 294 | if (!this.__resolve(ref)) { 295 | this.__delegateToUpperScope(ref); 296 | } 297 | } 298 | 299 | __dynamicCloseRef(ref) { 300 | 301 | // notify all names are through to global 302 | let current = this; 303 | 304 | do { 305 | current.through.push(ref); 306 | current = current.upper; 307 | } while (current); 308 | } 309 | 310 | __globalCloseRef(ref) { 311 | 312 | // let/const/class declarations should be resolved statically. 313 | // others should be resolved dynamically. 314 | if (this.__shouldStaticallyCloseForGlobal(ref)) { 315 | this.__staticCloseRef(ref); 316 | } else { 317 | this.__dynamicCloseRef(ref); 318 | } 319 | } 320 | 321 | __close(scopeManager) { 322 | let closeRef; 323 | 324 | if (this.__shouldStaticallyClose(scopeManager)) { 325 | closeRef = this.__staticCloseRef; 326 | } else if (this.type !== "global") { 327 | closeRef = this.__dynamicCloseRef; 328 | } else { 329 | closeRef = this.__globalCloseRef; 330 | } 331 | 332 | // Try Resolving all references in this scope. 333 | for (let i = 0, iz = this.__left.length; i < iz; ++i) { 334 | const ref = this.__left[i]; 335 | 336 | closeRef.call(this, ref); 337 | } 338 | this.__left = null; 339 | 340 | return this.upper; 341 | } 342 | 343 | // To override by function scopes. 344 | // References in default parameters isn't resolved to variables which are in their function body. 345 | __isValidResolution(ref, variable) { // eslint-disable-line class-methods-use-this, no-unused-vars 346 | return true; 347 | } 348 | 349 | __resolve(ref) { 350 | const name = ref.identifier.name; 351 | 352 | if (!this.set.has(name)) { 353 | return false; 354 | } 355 | const variable = this.set.get(name); 356 | 357 | if (!this.__isValidResolution(ref, variable)) { 358 | return false; 359 | } 360 | variable.references.push(ref); 361 | variable.stack = variable.stack && ref.from.variableScope === this.variableScope; 362 | if (ref.tainted) { 363 | variable.tainted = true; 364 | this.taints.set(variable.name, true); 365 | } 366 | ref.resolved = variable; 367 | 368 | return true; 369 | } 370 | 371 | __delegateToUpperScope(ref) { 372 | if (this.upper) { 373 | this.upper.__left.push(ref); 374 | } 375 | this.through.push(ref); 376 | } 377 | 378 | __addDeclaredVariablesOfNode(variable, node) { 379 | if (node === null || node === undefined) { 380 | return; 381 | } 382 | 383 | let variables = this.__declaredVariables.get(node); 384 | 385 | if (variables === null || variables === undefined) { 386 | variables = []; 387 | this.__declaredVariables.set(node, variables); 388 | } 389 | if (variables.indexOf(variable) === -1) { 390 | variables.push(variable); 391 | } 392 | } 393 | 394 | __defineGeneric(name, set, variables, node, def) { 395 | let variable; 396 | 397 | variable = set.get(name); 398 | if (!variable) { 399 | variable = new Variable(name, this); 400 | set.set(name, variable); 401 | variables.push(variable); 402 | } 403 | 404 | if (def) { 405 | variable.defs.push(def); 406 | this.__addDeclaredVariablesOfNode(variable, def.node); 407 | this.__addDeclaredVariablesOfNode(variable, def.parent); 408 | } 409 | if (node) { 410 | variable.identifiers.push(node); 411 | } 412 | } 413 | 414 | __define(node, def) { 415 | if (node && node.type === Syntax.Identifier) { 416 | this.__defineGeneric( 417 | node.name, 418 | this.set, 419 | this.variables, 420 | node, 421 | def 422 | ); 423 | } 424 | } 425 | 426 | __referencing(node, assign, writeExpr, maybeImplicitGlobal, partial, init) { 427 | 428 | // because Array element may be null 429 | if (!node || node.type !== Syntax.Identifier) { 430 | return; 431 | } 432 | 433 | // Specially handle like `this`. 434 | if (node.name === "super") { 435 | return; 436 | } 437 | 438 | const ref = new Reference(node, this, assign || Reference.READ, writeExpr, maybeImplicitGlobal, !!partial, !!init); 439 | 440 | this.references.push(ref); 441 | this.__left.push(ref); 442 | } 443 | 444 | __detectEval() { 445 | let current = this; 446 | 447 | this.directCallToEvalScope = true; 448 | do { 449 | current.dynamic = true; 450 | current = current.upper; 451 | } while (current); 452 | } 453 | 454 | __detectThis() { 455 | this.thisFound = true; 456 | } 457 | 458 | __isClosed() { 459 | return this.__left === null; 460 | } 461 | 462 | /** 463 | * returns resolved {Reference} 464 | * @method Scope#resolve 465 | * @param {Espree.Identifier} ident - identifier to be resolved. 466 | * @returns {Reference} reference 467 | */ 468 | resolve(ident) { 469 | let ref, i, iz; 470 | 471 | assert(this.__isClosed(), "Scope should be closed."); 472 | assert(ident.type === Syntax.Identifier, "Target should be identifier."); 473 | for (i = 0, iz = this.references.length; i < iz; ++i) { 474 | ref = this.references[i]; 475 | if (ref.identifier === ident) { 476 | return ref; 477 | } 478 | } 479 | return null; 480 | } 481 | 482 | /** 483 | * returns this scope is static 484 | * @method Scope#isStatic 485 | * @returns {boolean} static 486 | */ 487 | isStatic() { 488 | return !this.dynamic; 489 | } 490 | 491 | /** 492 | * returns this scope has materialized arguments 493 | * @method Scope#isArgumentsMaterialized 494 | * @returns {boolean} arguemnts materialized 495 | */ 496 | isArgumentsMaterialized() { // eslint-disable-line class-methods-use-this 497 | return true; 498 | } 499 | 500 | /** 501 | * returns this scope has materialized `this` reference 502 | * @method Scope#isThisMaterialized 503 | * @returns {boolean} this materialized 504 | */ 505 | isThisMaterialized() { // eslint-disable-line class-methods-use-this 506 | return true; 507 | } 508 | 509 | isUsedName(name) { 510 | if (this.set.has(name)) { 511 | return true; 512 | } 513 | for (let i = 0, iz = this.through.length; i < iz; ++i) { 514 | if (this.through[i].identifier.name === name) { 515 | return true; 516 | } 517 | } 518 | return false; 519 | } 520 | } 521 | 522 | class GlobalScope extends Scope { 523 | constructor(scopeManager, block) { 524 | super(scopeManager, "global", null, block, false); 525 | this.implicit = { 526 | set: new Map(), 527 | variables: [], 528 | 529 | /** 530 | * List of {@link Reference}s that are left to be resolved (i.e. which 531 | * need to be linked to the variable they refer to). 532 | * @member {Reference[]} Scope#implicit#left 533 | */ 534 | left: [] 535 | }; 536 | } 537 | 538 | __close(scopeManager) { 539 | const implicit = []; 540 | 541 | for (let i = 0, iz = this.__left.length; i < iz; ++i) { 542 | const ref = this.__left[i]; 543 | 544 | if (ref.__maybeImplicitGlobal && !this.set.has(ref.identifier.name)) { 545 | implicit.push(ref.__maybeImplicitGlobal); 546 | } 547 | } 548 | 549 | // create an implicit global variable from assignment expression 550 | for (let i = 0, iz = implicit.length; i < iz; ++i) { 551 | const info = implicit[i]; 552 | 553 | this.__defineImplicit(info.pattern, 554 | new Definition( 555 | Variable.ImplicitGlobalVariable, 556 | info.pattern, 557 | info.node, 558 | null, 559 | null, 560 | null 561 | )); 562 | 563 | } 564 | 565 | this.implicit.left = this.__left; 566 | 567 | return super.__close(scopeManager); 568 | } 569 | 570 | __defineImplicit(node, def) { 571 | if (node && node.type === Syntax.Identifier) { 572 | this.__defineGeneric( 573 | node.name, 574 | this.implicit.set, 575 | this.implicit.variables, 576 | node, 577 | def 578 | ); 579 | } 580 | } 581 | } 582 | 583 | class ModuleScope extends Scope { 584 | constructor(scopeManager, upperScope, block) { 585 | super(scopeManager, "module", upperScope, block, false); 586 | } 587 | } 588 | 589 | class FunctionExpressionNameScope extends Scope { 590 | constructor(scopeManager, upperScope, block) { 591 | super(scopeManager, "function-expression-name", upperScope, block, false); 592 | this.__define(block.id, 593 | new Definition( 594 | Variable.FunctionName, 595 | block.id, 596 | block, 597 | null, 598 | null, 599 | null 600 | )); 601 | this.functionExpressionScope = true; 602 | } 603 | } 604 | 605 | class CatchScope extends Scope { 606 | constructor(scopeManager, upperScope, block) { 607 | super(scopeManager, "catch", upperScope, block, false); 608 | } 609 | } 610 | 611 | class WithScope extends Scope { 612 | constructor(scopeManager, upperScope, block) { 613 | super(scopeManager, "with", upperScope, block, false); 614 | } 615 | 616 | __close(scopeManager) { 617 | if (this.__shouldStaticallyClose(scopeManager)) { 618 | return super.__close(scopeManager); 619 | } 620 | 621 | for (let i = 0, iz = this.__left.length; i < iz; ++i) { 622 | const ref = this.__left[i]; 623 | 624 | ref.tainted = true; 625 | this.__delegateToUpperScope(ref); 626 | } 627 | this.__left = null; 628 | 629 | return this.upper; 630 | } 631 | } 632 | 633 | class BlockScope extends Scope { 634 | constructor(scopeManager, upperScope, block) { 635 | super(scopeManager, "block", upperScope, block, false); 636 | } 637 | } 638 | 639 | class SwitchScope extends Scope { 640 | constructor(scopeManager, upperScope, block) { 641 | super(scopeManager, "switch", upperScope, block, false); 642 | } 643 | } 644 | 645 | class FunctionScope extends Scope { 646 | constructor(scopeManager, upperScope, block, isMethodDefinition) { 647 | super(scopeManager, "function", upperScope, block, isMethodDefinition); 648 | 649 | // section 9.2.13, FunctionDeclarationInstantiation. 650 | // NOTE Arrow functions never have an arguments objects. 651 | if (this.block.type !== Syntax.ArrowFunctionExpression) { 652 | this.__defineArguments(); 653 | } 654 | } 655 | 656 | isArgumentsMaterialized() { 657 | 658 | // TODO(Constellation) 659 | // We can more aggressive on this condition like this. 660 | // 661 | // function t() { 662 | // // arguments of t is always hidden. 663 | // function arguments() { 664 | // } 665 | // } 666 | if (this.block.type === Syntax.ArrowFunctionExpression) { 667 | return false; 668 | } 669 | 670 | if (!this.isStatic()) { 671 | return true; 672 | } 673 | 674 | const variable = this.set.get("arguments"); 675 | 676 | assert(variable, "Always have arguments variable."); 677 | return variable.tainted || variable.references.length !== 0; 678 | } 679 | 680 | isThisMaterialized() { 681 | if (!this.isStatic()) { 682 | return true; 683 | } 684 | return this.thisFound; 685 | } 686 | 687 | __defineArguments() { 688 | this.__defineGeneric( 689 | "arguments", 690 | this.set, 691 | this.variables, 692 | null, 693 | null 694 | ); 695 | this.taints.set("arguments", true); 696 | } 697 | 698 | // References in default parameters isn't resolved to variables which are in their function body. 699 | // const x = 1 700 | // function f(a = x) { // This `x` is resolved to the `x` in the outer scope. 701 | // const x = 2 702 | // console.log(a) 703 | // } 704 | __isValidResolution(ref, variable) { 705 | 706 | // If `options.nodejsScope` is true, `this.block` becomes a Program node. 707 | if (this.block.type === "Program") { 708 | return true; 709 | } 710 | 711 | const bodyStart = this.block.body.range[0]; 712 | 713 | // It's invalid resolution in the following case: 714 | return !( 715 | variable.scope === this && 716 | ref.identifier.range[0] < bodyStart && // the reference is in the parameter part. 717 | variable.defs.every(d => d.name.range[0] >= bodyStart) // the variable is in the body. 718 | ); 719 | } 720 | } 721 | 722 | class ForScope extends Scope { 723 | constructor(scopeManager, upperScope, block) { 724 | super(scopeManager, "for", upperScope, block, false); 725 | } 726 | } 727 | 728 | class ClassScope extends Scope { 729 | constructor(scopeManager, upperScope, block) { 730 | super(scopeManager, "class", upperScope, block, false); 731 | } 732 | } 733 | 734 | module.exports = { 735 | Scope, 736 | GlobalScope, 737 | ModuleScope, 738 | FunctionExpressionNameScope, 739 | CatchScope, 740 | WithScope, 741 | BlockScope, 742 | SwitchScope, 743 | FunctionScope, 744 | ForScope, 745 | ClassScope 746 | }; 747 | 748 | /* vim: set sw=4 ts=4 et tw=80 : */ 749 | -------------------------------------------------------------------------------- /test/fixtures/1000-stdout-stderr.txt: -------------------------------------------------------------------------------- 1 | stdout 0 2 | stderr 0 3 | stdout 1 4 | stderr 1 5 | stdout 2 6 | stderr 2 7 | stdout 3 8 | stderr 3 9 | stdout 4 10 | stderr 4 11 | stdout 5 12 | stderr 5 13 | stdout 6 14 | stderr 6 15 | stdout 7 16 | stderr 7 17 | stdout 8 18 | stderr 8 19 | stdout 9 20 | stderr 9 21 | stdout 10 22 | stderr 10 23 | stdout 11 24 | stderr 11 25 | stdout 12 26 | stderr 12 27 | stdout 13 28 | stderr 13 29 | stdout 14 30 | stderr 14 31 | stdout 15 32 | stderr 15 33 | stdout 16 34 | stderr 16 35 | stdout 17 36 | stderr 17 37 | stdout 18 38 | stderr 18 39 | stdout 19 40 | stderr 19 41 | stdout 20 42 | stderr 20 43 | stdout 21 44 | stderr 21 45 | stdout 22 46 | stderr 22 47 | stdout 23 48 | stderr 23 49 | stdout 24 50 | stderr 24 51 | stdout 25 52 | stderr 25 53 | stdout 26 54 | stderr 26 55 | stdout 27 56 | stderr 27 57 | stdout 28 58 | stderr 28 59 | stdout 29 60 | stderr 29 61 | stdout 30 62 | stderr 30 63 | stdout 31 64 | stderr 31 65 | stdout 32 66 | stderr 32 67 | stdout 33 68 | stderr 33 69 | stdout 34 70 | stderr 34 71 | stdout 35 72 | stderr 35 73 | stdout 36 74 | stderr 36 75 | stdout 37 76 | stderr 37 77 | stdout 38 78 | stderr 38 79 | stdout 39 80 | stderr 39 81 | stdout 40 82 | stderr 40 83 | stdout 41 84 | stderr 41 85 | stdout 42 86 | stderr 42 87 | stdout 43 88 | stderr 43 89 | stdout 44 90 | stderr 44 91 | stdout 45 92 | stderr 45 93 | stdout 46 94 | stderr 46 95 | stdout 47 96 | stderr 47 97 | stdout 48 98 | stderr 48 99 | stdout 49 100 | stderr 49 101 | stdout 50 102 | stderr 50 103 | stdout 51 104 | stderr 51 105 | stdout 52 106 | stderr 52 107 | stdout 53 108 | stderr 53 109 | stdout 54 110 | stderr 54 111 | stdout 55 112 | stderr 55 113 | stdout 56 114 | stderr 56 115 | stdout 57 116 | stderr 57 117 | stdout 58 118 | stderr 58 119 | stdout 59 120 | stderr 59 121 | stdout 60 122 | stderr 60 123 | stdout 61 124 | stderr 61 125 | stdout 62 126 | stderr 62 127 | stdout 63 128 | stderr 63 129 | stdout 64 130 | stderr 64 131 | stdout 65 132 | stderr 65 133 | stdout 66 134 | stderr 66 135 | stdout 67 136 | stderr 67 137 | stdout 68 138 | stderr 68 139 | stdout 69 140 | stderr 69 141 | stdout 70 142 | stderr 70 143 | stdout 71 144 | stderr 71 145 | stdout 72 146 | stderr 72 147 | stdout 73 148 | stderr 73 149 | stdout 74 150 | stderr 74 151 | stdout 75 152 | stderr 75 153 | stdout 76 154 | stderr 76 155 | stdout 77 156 | stderr 77 157 | stdout 78 158 | stderr 78 159 | stdout 79 160 | stderr 79 161 | stdout 80 162 | stderr 80 163 | stdout 81 164 | stderr 81 165 | stdout 82 166 | stderr 82 167 | stdout 83 168 | stderr 83 169 | stdout 84 170 | stderr 84 171 | stdout 85 172 | stderr 85 173 | stdout 86 174 | stderr 86 175 | stdout 87 176 | stderr 87 177 | stdout 88 178 | stderr 88 179 | stdout 89 180 | stderr 89 181 | stdout 90 182 | stderr 90 183 | stdout 91 184 | stderr 91 185 | stdout 92 186 | stderr 92 187 | stdout 93 188 | stderr 93 189 | stdout 94 190 | stderr 94 191 | stdout 95 192 | stderr 95 193 | stdout 96 194 | stderr 96 195 | stdout 97 196 | stderr 97 197 | stdout 98 198 | stderr 98 199 | stdout 99 200 | stderr 99 201 | stdout 100 202 | stderr 100 203 | stdout 101 204 | stderr 101 205 | stdout 102 206 | stderr 102 207 | stdout 103 208 | stderr 103 209 | stdout 104 210 | stderr 104 211 | stdout 105 212 | stderr 105 213 | stdout 106 214 | stderr 106 215 | stdout 107 216 | stderr 107 217 | stdout 108 218 | stderr 108 219 | stdout 109 220 | stderr 109 221 | stdout 110 222 | stderr 110 223 | stdout 111 224 | stderr 111 225 | stdout 112 226 | stderr 112 227 | stdout 113 228 | stderr 113 229 | stdout 114 230 | stderr 114 231 | stdout 115 232 | stderr 115 233 | stdout 116 234 | stderr 116 235 | stdout 117 236 | stderr 117 237 | stdout 118 238 | stderr 118 239 | stdout 119 240 | stderr 119 241 | stdout 120 242 | stderr 120 243 | stdout 121 244 | stderr 121 245 | stdout 122 246 | stderr 122 247 | stdout 123 248 | stderr 123 249 | stdout 124 250 | stderr 124 251 | stdout 125 252 | stderr 125 253 | stdout 126 254 | stderr 126 255 | stdout 127 256 | stderr 127 257 | stdout 128 258 | stderr 128 259 | stdout 129 260 | stderr 129 261 | stdout 130 262 | stderr 130 263 | stdout 131 264 | stderr 131 265 | stdout 132 266 | stderr 132 267 | stdout 133 268 | stderr 133 269 | stdout 134 270 | stderr 134 271 | stdout 135 272 | stderr 135 273 | stdout 136 274 | stderr 136 275 | stdout 137 276 | stderr 137 277 | stdout 138 278 | stderr 138 279 | stdout 139 280 | stderr 139 281 | stdout 140 282 | stderr 140 283 | stdout 141 284 | stderr 141 285 | stdout 142 286 | stderr 142 287 | stdout 143 288 | stderr 143 289 | stdout 144 290 | stderr 144 291 | stdout 145 292 | stderr 145 293 | stdout 146 294 | stderr 146 295 | stdout 147 296 | stderr 147 297 | stdout 148 298 | stderr 148 299 | stdout 149 300 | stderr 149 301 | stdout 150 302 | stderr 150 303 | stdout 151 304 | stderr 151 305 | stdout 152 306 | stderr 152 307 | stdout 153 308 | stderr 153 309 | stdout 154 310 | stderr 154 311 | stdout 155 312 | stderr 155 313 | stdout 156 314 | stderr 156 315 | stdout 157 316 | stderr 157 317 | stdout 158 318 | stderr 158 319 | stdout 159 320 | stderr 159 321 | stdout 160 322 | stderr 160 323 | stdout 161 324 | stderr 161 325 | stdout 162 326 | stderr 162 327 | stdout 163 328 | stderr 163 329 | stdout 164 330 | stderr 164 331 | stdout 165 332 | stderr 165 333 | stdout 166 334 | stderr 166 335 | stdout 167 336 | stderr 167 337 | stdout 168 338 | stderr 168 339 | stdout 169 340 | stderr 169 341 | stdout 170 342 | stderr 170 343 | stdout 171 344 | stderr 171 345 | stdout 172 346 | stderr 172 347 | stdout 173 348 | stderr 173 349 | stdout 174 350 | stderr 174 351 | stdout 175 352 | stderr 175 353 | stdout 176 354 | stderr 176 355 | stdout 177 356 | stderr 177 357 | stdout 178 358 | stderr 178 359 | stdout 179 360 | stderr 179 361 | stdout 180 362 | stderr 180 363 | stdout 181 364 | stderr 181 365 | stdout 182 366 | stderr 182 367 | stdout 183 368 | stderr 183 369 | stdout 184 370 | stderr 184 371 | stdout 185 372 | stderr 185 373 | stdout 186 374 | stderr 186 375 | stdout 187 376 | stderr 187 377 | stdout 188 378 | stderr 188 379 | stdout 189 380 | stderr 189 381 | stdout 190 382 | stderr 190 383 | stdout 191 384 | stderr 191 385 | stdout 192 386 | stderr 192 387 | stdout 193 388 | stderr 193 389 | stdout 194 390 | stderr 194 391 | stdout 195 392 | stderr 195 393 | stdout 196 394 | stderr 196 395 | stdout 197 396 | stderr 197 397 | stdout 198 398 | stderr 198 399 | stdout 199 400 | stderr 199 401 | stdout 200 402 | stderr 200 403 | stdout 201 404 | stderr 201 405 | stdout 202 406 | stderr 202 407 | stdout 203 408 | stderr 203 409 | stdout 204 410 | stderr 204 411 | stdout 205 412 | stderr 205 413 | stdout 206 414 | stderr 206 415 | stdout 207 416 | stderr 207 417 | stdout 208 418 | stderr 208 419 | stdout 209 420 | stderr 209 421 | stdout 210 422 | stderr 210 423 | stdout 211 424 | stderr 211 425 | stdout 212 426 | stderr 212 427 | stdout 213 428 | stderr 213 429 | stdout 214 430 | stderr 214 431 | stdout 215 432 | stderr 215 433 | stdout 216 434 | stderr 216 435 | stdout 217 436 | stderr 217 437 | stdout 218 438 | stderr 218 439 | stdout 219 440 | stderr 219 441 | stdout 220 442 | stderr 220 443 | stdout 221 444 | stderr 221 445 | stdout 222 446 | stderr 222 447 | stdout 223 448 | stderr 223 449 | stdout 224 450 | stderr 224 451 | stdout 225 452 | stderr 225 453 | stdout 226 454 | stderr 226 455 | stdout 227 456 | stderr 227 457 | stdout 228 458 | stderr 228 459 | stdout 229 460 | stderr 229 461 | stdout 230 462 | stderr 230 463 | stdout 231 464 | stderr 231 465 | stdout 232 466 | stderr 232 467 | stdout 233 468 | stderr 233 469 | stdout 234 470 | stderr 234 471 | stdout 235 472 | stderr 235 473 | stdout 236 474 | stderr 236 475 | stdout 237 476 | stderr 237 477 | stdout 238 478 | stderr 238 479 | stdout 239 480 | stderr 239 481 | stdout 240 482 | stderr 240 483 | stdout 241 484 | stderr 241 485 | stdout 242 486 | stderr 242 487 | stdout 243 488 | stderr 243 489 | stdout 244 490 | stderr 244 491 | stdout 245 492 | stderr 245 493 | stdout 246 494 | stderr 246 495 | stdout 247 496 | stderr 247 497 | stdout 248 498 | stderr 248 499 | stdout 249 500 | stderr 249 501 | stdout 250 502 | stderr 250 503 | stdout 251 504 | stderr 251 505 | stdout 252 506 | stderr 252 507 | stdout 253 508 | stderr 253 509 | stdout 254 510 | stderr 254 511 | stdout 255 512 | stderr 255 513 | stdout 256 514 | stderr 256 515 | stdout 257 516 | stderr 257 517 | stdout 258 518 | stderr 258 519 | stdout 259 520 | stderr 259 521 | stdout 260 522 | stderr 260 523 | stdout 261 524 | stderr 261 525 | stdout 262 526 | stderr 262 527 | stdout 263 528 | stderr 263 529 | stdout 264 530 | stderr 264 531 | stdout 265 532 | stderr 265 533 | stdout 266 534 | stderr 266 535 | stdout 267 536 | stderr 267 537 | stdout 268 538 | stderr 268 539 | stdout 269 540 | stderr 269 541 | stdout 270 542 | stderr 270 543 | stdout 271 544 | stderr 271 545 | stdout 272 546 | stderr 272 547 | stdout 273 548 | stderr 273 549 | stdout 274 550 | stderr 274 551 | stdout 275 552 | stderr 275 553 | stdout 276 554 | stderr 276 555 | stdout 277 556 | stderr 277 557 | stdout 278 558 | stderr 278 559 | stdout 279 560 | stderr 279 561 | stdout 280 562 | stderr 280 563 | stdout 281 564 | stderr 281 565 | stdout 282 566 | stderr 282 567 | stdout 283 568 | stderr 283 569 | stdout 284 570 | stderr 284 571 | stdout 285 572 | stderr 285 573 | stdout 286 574 | stderr 286 575 | stdout 287 576 | stderr 287 577 | stdout 288 578 | stderr 288 579 | stdout 289 580 | stderr 289 581 | stdout 290 582 | stderr 290 583 | stdout 291 584 | stderr 291 585 | stdout 292 586 | stderr 292 587 | stdout 293 588 | stderr 293 589 | stdout 294 590 | stderr 294 591 | stdout 295 592 | stderr 295 593 | stdout 296 594 | stderr 296 595 | stdout 297 596 | stderr 297 597 | stdout 298 598 | stderr 298 599 | stdout 299 600 | stderr 299 601 | stdout 300 602 | stderr 300 603 | stdout 301 604 | stderr 301 605 | stdout 302 606 | stderr 302 607 | stdout 303 608 | stderr 303 609 | stdout 304 610 | stderr 304 611 | stdout 305 612 | stderr 305 613 | stdout 306 614 | stderr 306 615 | stdout 307 616 | stderr 307 617 | stdout 308 618 | stderr 308 619 | stdout 309 620 | stderr 309 621 | stdout 310 622 | stderr 310 623 | stdout 311 624 | stderr 311 625 | stdout 312 626 | stderr 312 627 | stdout 313 628 | stderr 313 629 | stdout 314 630 | stderr 314 631 | stdout 315 632 | stderr 315 633 | stdout 316 634 | stderr 316 635 | stdout 317 636 | stderr 317 637 | stdout 318 638 | stderr 318 639 | stdout 319 640 | stderr 319 641 | stdout 320 642 | stderr 320 643 | stdout 321 644 | stderr 321 645 | stdout 322 646 | stderr 322 647 | stdout 323 648 | stderr 323 649 | stdout 324 650 | stderr 324 651 | stdout 325 652 | stderr 325 653 | stdout 326 654 | stderr 326 655 | stdout 327 656 | stderr 327 657 | stdout 328 658 | stderr 328 659 | stdout 329 660 | stderr 329 661 | stdout 330 662 | stderr 330 663 | stdout 331 664 | stderr 331 665 | stdout 332 666 | stderr 332 667 | stdout 333 668 | stderr 333 669 | stdout 334 670 | stderr 334 671 | stdout 335 672 | stderr 335 673 | stdout 336 674 | stderr 336 675 | stdout 337 676 | stderr 337 677 | stdout 338 678 | stderr 338 679 | stdout 339 680 | stderr 339 681 | stdout 340 682 | stderr 340 683 | stdout 341 684 | stderr 341 685 | stdout 342 686 | stderr 342 687 | stdout 343 688 | stderr 343 689 | stdout 344 690 | stderr 344 691 | stdout 345 692 | stderr 345 693 | stdout 346 694 | stderr 346 695 | stdout 347 696 | stderr 347 697 | stdout 348 698 | stderr 348 699 | stdout 349 700 | stderr 349 701 | stdout 350 702 | stderr 350 703 | stdout 351 704 | stderr 351 705 | stdout 352 706 | stderr 352 707 | stdout 353 708 | stderr 353 709 | stdout 354 710 | stderr 354 711 | stdout 355 712 | stderr 355 713 | stdout 356 714 | stderr 356 715 | stdout 357 716 | stderr 357 717 | stdout 358 718 | stderr 358 719 | stdout 359 720 | stderr 359 721 | stdout 360 722 | stderr 360 723 | stdout 361 724 | stderr 361 725 | stdout 362 726 | stderr 362 727 | stdout 363 728 | stderr 363 729 | stdout 364 730 | stderr 364 731 | stdout 365 732 | stderr 365 733 | stdout 366 734 | stderr 366 735 | stdout 367 736 | stderr 367 737 | stdout 368 738 | stderr 368 739 | stdout 369 740 | stderr 369 741 | stdout 370 742 | stderr 370 743 | stdout 371 744 | stderr 371 745 | stdout 372 746 | stderr 372 747 | stdout 373 748 | stderr 373 749 | stdout 374 750 | stderr 374 751 | stdout 375 752 | stderr 375 753 | stdout 376 754 | stderr 376 755 | stdout 377 756 | stderr 377 757 | stdout 378 758 | stderr 378 759 | stdout 379 760 | stderr 379 761 | stdout 380 762 | stderr 380 763 | stdout 381 764 | stderr 381 765 | stdout 382 766 | stderr 382 767 | stdout 383 768 | stderr 383 769 | stdout 384 770 | stderr 384 771 | stdout 385 772 | stderr 385 773 | stdout 386 774 | stderr 386 775 | stdout 387 776 | stderr 387 777 | stdout 388 778 | stderr 388 779 | stdout 389 780 | stderr 389 781 | stdout 390 782 | stderr 390 783 | stdout 391 784 | stderr 391 785 | stdout 392 786 | stderr 392 787 | stdout 393 788 | stderr 393 789 | stdout 394 790 | stderr 394 791 | stdout 395 792 | stderr 395 793 | stdout 396 794 | stderr 396 795 | stdout 397 796 | stderr 397 797 | stdout 398 798 | stderr 398 799 | stdout 399 800 | stderr 399 801 | stdout 400 802 | stderr 400 803 | stdout 401 804 | stderr 401 805 | stdout 402 806 | stderr 402 807 | stdout 403 808 | stderr 403 809 | stdout 404 810 | stderr 404 811 | stdout 405 812 | stderr 405 813 | stdout 406 814 | stderr 406 815 | stdout 407 816 | stderr 407 817 | stdout 408 818 | stderr 408 819 | stdout 409 820 | stderr 409 821 | stdout 410 822 | stderr 410 823 | stdout 411 824 | stderr 411 825 | stdout 412 826 | stderr 412 827 | stdout 413 828 | stderr 413 829 | stdout 414 830 | stderr 414 831 | stdout 415 832 | stderr 415 833 | stdout 416 834 | stderr 416 835 | stdout 417 836 | stderr 417 837 | stdout 418 838 | stderr 418 839 | stdout 419 840 | stderr 419 841 | stdout 420 842 | stderr 420 843 | stdout 421 844 | stderr 421 845 | stdout 422 846 | stderr 422 847 | stdout 423 848 | stderr 423 849 | stdout 424 850 | stderr 424 851 | stdout 425 852 | stderr 425 853 | stdout 426 854 | stderr 426 855 | stdout 427 856 | stderr 427 857 | stdout 428 858 | stderr 428 859 | stdout 429 860 | stderr 429 861 | stdout 430 862 | stderr 430 863 | stdout 431 864 | stderr 431 865 | stdout 432 866 | stderr 432 867 | stdout 433 868 | stderr 433 869 | stdout 434 870 | stderr 434 871 | stdout 435 872 | stderr 435 873 | stdout 436 874 | stderr 436 875 | stdout 437 876 | stderr 437 877 | stdout 438 878 | stderr 438 879 | stdout 439 880 | stderr 439 881 | stdout 440 882 | stderr 440 883 | stdout 441 884 | stderr 441 885 | stdout 442 886 | stderr 442 887 | stdout 443 888 | stderr 443 889 | stdout 444 890 | stderr 444 891 | stdout 445 892 | stderr 445 893 | stdout 446 894 | stderr 446 895 | stdout 447 896 | stderr 447 897 | stdout 448 898 | stderr 448 899 | stdout 449 900 | stderr 449 901 | stdout 450 902 | stderr 450 903 | stdout 451 904 | stderr 451 905 | stdout 452 906 | stderr 452 907 | stdout 453 908 | stderr 453 909 | stdout 454 910 | stderr 454 911 | stdout 455 912 | stderr 455 913 | stdout 456 914 | stderr 456 915 | stdout 457 916 | stderr 457 917 | stdout 458 918 | stderr 458 919 | stdout 459 920 | stderr 459 921 | stdout 460 922 | stderr 460 923 | stdout 461 924 | stderr 461 925 | stdout 462 926 | stderr 462 927 | stdout 463 928 | stderr 463 929 | stdout 464 930 | stderr 464 931 | stdout 465 932 | stderr 465 933 | stdout 466 934 | stderr 466 935 | stdout 467 936 | stderr 467 937 | stdout 468 938 | stderr 468 939 | stdout 469 940 | stderr 469 941 | stdout 470 942 | stderr 470 943 | stdout 471 944 | stderr 471 945 | stdout 472 946 | stderr 472 947 | stdout 473 948 | stderr 473 949 | stdout 474 950 | stderr 474 951 | stdout 475 952 | stderr 475 953 | stdout 476 954 | stderr 476 955 | stdout 477 956 | stderr 477 957 | stdout 478 958 | stderr 478 959 | stdout 479 960 | stderr 479 961 | stdout 480 962 | stderr 480 963 | stdout 481 964 | stderr 481 965 | stdout 482 966 | stderr 482 967 | stdout 483 968 | stderr 483 969 | stdout 484 970 | stderr 484 971 | stdout 485 972 | stderr 485 973 | stdout 486 974 | stderr 486 975 | stdout 487 976 | stderr 487 977 | stdout 488 978 | stderr 488 979 | stdout 489 980 | stderr 489 981 | stdout 490 982 | stderr 490 983 | stdout 491 984 | stderr 491 985 | stdout 492 986 | stderr 492 987 | stdout 493 988 | stderr 493 989 | stdout 494 990 | stderr 494 991 | stdout 495 992 | stderr 495 993 | stdout 496 994 | stderr 496 995 | stdout 497 996 | stderr 497 997 | stdout 498 998 | stderr 498 999 | stdout 499 1000 | stderr 499 1001 | stdout 500 1002 | stderr 500 1003 | stdout 501 1004 | stderr 501 1005 | stdout 502 1006 | stderr 502 1007 | stdout 503 1008 | stderr 503 1009 | stdout 504 1010 | stderr 504 1011 | stdout 505 1012 | stderr 505 1013 | stdout 506 1014 | stderr 506 1015 | stdout 507 1016 | stderr 507 1017 | stdout 508 1018 | stderr 508 1019 | stdout 509 1020 | stderr 509 1021 | stdout 510 1022 | stderr 510 1023 | stdout 511 1024 | stderr 511 1025 | stdout 512 1026 | stderr 512 1027 | stdout 513 1028 | stderr 513 1029 | stdout 514 1030 | stderr 514 1031 | stdout 515 1032 | stderr 515 1033 | stdout 516 1034 | stderr 516 1035 | stdout 517 1036 | stderr 517 1037 | stdout 518 1038 | stderr 518 1039 | stdout 519 1040 | stderr 519 1041 | stdout 520 1042 | stderr 520 1043 | stdout 521 1044 | stderr 521 1045 | stdout 522 1046 | stderr 522 1047 | stdout 523 1048 | stderr 523 1049 | stdout 524 1050 | stderr 524 1051 | stdout 525 1052 | stderr 525 1053 | stdout 526 1054 | stderr 526 1055 | stdout 527 1056 | stderr 527 1057 | stdout 528 1058 | stderr 528 1059 | stdout 529 1060 | stderr 529 1061 | stdout 530 1062 | stderr 530 1063 | stdout 531 1064 | stderr 531 1065 | stdout 532 1066 | stderr 532 1067 | stdout 533 1068 | stderr 533 1069 | stdout 534 1070 | stderr 534 1071 | stdout 535 1072 | stderr 535 1073 | stdout 536 1074 | stderr 536 1075 | stdout 537 1076 | stderr 537 1077 | stdout 538 1078 | stderr 538 1079 | stdout 539 1080 | stderr 539 1081 | stdout 540 1082 | stderr 540 1083 | stdout 541 1084 | stderr 541 1085 | stdout 542 1086 | stderr 542 1087 | stdout 543 1088 | stderr 543 1089 | stdout 544 1090 | stderr 544 1091 | stdout 545 1092 | stderr 545 1093 | stdout 546 1094 | stderr 546 1095 | stdout 547 1096 | stderr 547 1097 | stdout 548 1098 | stderr 548 1099 | stdout 549 1100 | stderr 549 1101 | stdout 550 1102 | stderr 550 1103 | stdout 551 1104 | stderr 551 1105 | stdout 552 1106 | stderr 552 1107 | stdout 553 1108 | stderr 553 1109 | stdout 554 1110 | stderr 554 1111 | stdout 555 1112 | stderr 555 1113 | stdout 556 1114 | stderr 556 1115 | stdout 557 1116 | stderr 557 1117 | stdout 558 1118 | stderr 558 1119 | stdout 559 1120 | stderr 559 1121 | stdout 560 1122 | stderr 560 1123 | stdout 561 1124 | stderr 561 1125 | stdout 562 1126 | stderr 562 1127 | stdout 563 1128 | stderr 563 1129 | stdout 564 1130 | stderr 564 1131 | stdout 565 1132 | stderr 565 1133 | stdout 566 1134 | stderr 566 1135 | stdout 567 1136 | stderr 567 1137 | stdout 568 1138 | stderr 568 1139 | stdout 569 1140 | stderr 569 1141 | stdout 570 1142 | stderr 570 1143 | stdout 571 1144 | stderr 571 1145 | stdout 572 1146 | stderr 572 1147 | stdout 573 1148 | stderr 573 1149 | stdout 574 1150 | stderr 574 1151 | stdout 575 1152 | stderr 575 1153 | stdout 576 1154 | stderr 576 1155 | stdout 577 1156 | stderr 577 1157 | stdout 578 1158 | stderr 578 1159 | stdout 579 1160 | stderr 579 1161 | stdout 580 1162 | stderr 580 1163 | stdout 581 1164 | stderr 581 1165 | stdout 582 1166 | stderr 582 1167 | stdout 583 1168 | stderr 583 1169 | stdout 584 1170 | stderr 584 1171 | stdout 585 1172 | stderr 585 1173 | stdout 586 1174 | stderr 586 1175 | stdout 587 1176 | stderr 587 1177 | stdout 588 1178 | stderr 588 1179 | stdout 589 1180 | stderr 589 1181 | stdout 590 1182 | stderr 590 1183 | stdout 591 1184 | stderr 591 1185 | stdout 592 1186 | stderr 592 1187 | stdout 593 1188 | stderr 593 1189 | stdout 594 1190 | stderr 594 1191 | stdout 595 1192 | stderr 595 1193 | stdout 596 1194 | stderr 596 1195 | stdout 597 1196 | stderr 597 1197 | stdout 598 1198 | stderr 598 1199 | stdout 599 1200 | stderr 599 1201 | stdout 600 1202 | stderr 600 1203 | stdout 601 1204 | stderr 601 1205 | stdout 602 1206 | stderr 602 1207 | stdout 603 1208 | stderr 603 1209 | stdout 604 1210 | stderr 604 1211 | stdout 605 1212 | stderr 605 1213 | stdout 606 1214 | stderr 606 1215 | stdout 607 1216 | stderr 607 1217 | stdout 608 1218 | stderr 608 1219 | stdout 609 1220 | stderr 609 1221 | stdout 610 1222 | stderr 610 1223 | stdout 611 1224 | stderr 611 1225 | stdout 612 1226 | stderr 612 1227 | stdout 613 1228 | stderr 613 1229 | stdout 614 1230 | stderr 614 1231 | stdout 615 1232 | stderr 615 1233 | stdout 616 1234 | stderr 616 1235 | stdout 617 1236 | stderr 617 1237 | stdout 618 1238 | stderr 618 1239 | stdout 619 1240 | stderr 619 1241 | stdout 620 1242 | stderr 620 1243 | stdout 621 1244 | stderr 621 1245 | stdout 622 1246 | stderr 622 1247 | stdout 623 1248 | stderr 623 1249 | stdout 624 1250 | stderr 624 1251 | stdout 625 1252 | stderr 625 1253 | stdout 626 1254 | stderr 626 1255 | stdout 627 1256 | stderr 627 1257 | stdout 628 1258 | stderr 628 1259 | stdout 629 1260 | stderr 629 1261 | stdout 630 1262 | stderr 630 1263 | stdout 631 1264 | stderr 631 1265 | stdout 632 1266 | stderr 632 1267 | stdout 633 1268 | stderr 633 1269 | stdout 634 1270 | stderr 634 1271 | stdout 635 1272 | stderr 635 1273 | stdout 636 1274 | stderr 636 1275 | stdout 637 1276 | stderr 637 1277 | stdout 638 1278 | stderr 638 1279 | stdout 639 1280 | stderr 639 1281 | stdout 640 1282 | stderr 640 1283 | stdout 641 1284 | stderr 641 1285 | stdout 642 1286 | stderr 642 1287 | stdout 643 1288 | stderr 643 1289 | stdout 644 1290 | stderr 644 1291 | stdout 645 1292 | stderr 645 1293 | stdout 646 1294 | stderr 646 1295 | stdout 647 1296 | stderr 647 1297 | stdout 648 1298 | stderr 648 1299 | stdout 649 1300 | stderr 649 1301 | stdout 650 1302 | stderr 650 1303 | stdout 651 1304 | stderr 651 1305 | stdout 652 1306 | stderr 652 1307 | stdout 653 1308 | stderr 653 1309 | stdout 654 1310 | stderr 654 1311 | stdout 655 1312 | stderr 655 1313 | stdout 656 1314 | stderr 656 1315 | stdout 657 1316 | stderr 657 1317 | stdout 658 1318 | stderr 658 1319 | stdout 659 1320 | stderr 659 1321 | stdout 660 1322 | stderr 660 1323 | stdout 661 1324 | stderr 661 1325 | stdout 662 1326 | stderr 662 1327 | stdout 663 1328 | stderr 663 1329 | stdout 664 1330 | stderr 664 1331 | stdout 665 1332 | stderr 665 1333 | stdout 666 1334 | stderr 666 1335 | stdout 667 1336 | stderr 667 1337 | stdout 668 1338 | stderr 668 1339 | stdout 669 1340 | stderr 669 1341 | stdout 670 1342 | stderr 670 1343 | stdout 671 1344 | stderr 671 1345 | stdout 672 1346 | stderr 672 1347 | stdout 673 1348 | stderr 673 1349 | stdout 674 1350 | stderr 674 1351 | stdout 675 1352 | stderr 675 1353 | stdout 676 1354 | stderr 676 1355 | stdout 677 1356 | stderr 677 1357 | stdout 678 1358 | stderr 678 1359 | stdout 679 1360 | stderr 679 1361 | stdout 680 1362 | stderr 680 1363 | stdout 681 1364 | stderr 681 1365 | stdout 682 1366 | stderr 682 1367 | stdout 683 1368 | stderr 683 1369 | stdout 684 1370 | stderr 684 1371 | stdout 685 1372 | stderr 685 1373 | stdout 686 1374 | stderr 686 1375 | stdout 687 1376 | stderr 687 1377 | stdout 688 1378 | stderr 688 1379 | stdout 689 1380 | stderr 689 1381 | stdout 690 1382 | stderr 690 1383 | stdout 691 1384 | stderr 691 1385 | stdout 692 1386 | stderr 692 1387 | stdout 693 1388 | stderr 693 1389 | stdout 694 1390 | stderr 694 1391 | stdout 695 1392 | stderr 695 1393 | stdout 696 1394 | stderr 696 1395 | stdout 697 1396 | stderr 697 1397 | stdout 698 1398 | stderr 698 1399 | stdout 699 1400 | stderr 699 1401 | stdout 700 1402 | stderr 700 1403 | stdout 701 1404 | stderr 701 1405 | stdout 702 1406 | stderr 702 1407 | stdout 703 1408 | stderr 703 1409 | stdout 704 1410 | stderr 704 1411 | stdout 705 1412 | stderr 705 1413 | stdout 706 1414 | stderr 706 1415 | stdout 707 1416 | stderr 707 1417 | stdout 708 1418 | stderr 708 1419 | stdout 709 1420 | stderr 709 1421 | stdout 710 1422 | stderr 710 1423 | stdout 711 1424 | stderr 711 1425 | stdout 712 1426 | stderr 712 1427 | stdout 713 1428 | stderr 713 1429 | stdout 714 1430 | stderr 714 1431 | stdout 715 1432 | stderr 715 1433 | stdout 716 1434 | stderr 716 1435 | stdout 717 1436 | stderr 717 1437 | stdout 718 1438 | stderr 718 1439 | stdout 719 1440 | stderr 719 1441 | stdout 720 1442 | stderr 720 1443 | stdout 721 1444 | stderr 721 1445 | stdout 722 1446 | stderr 722 1447 | stdout 723 1448 | stderr 723 1449 | stdout 724 1450 | stderr 724 1451 | stdout 725 1452 | stderr 725 1453 | stdout 726 1454 | stderr 726 1455 | stdout 727 1456 | stderr 727 1457 | stdout 728 1458 | stderr 728 1459 | stdout 729 1460 | stderr 729 1461 | stdout 730 1462 | stderr 730 1463 | stdout 731 1464 | stderr 731 1465 | stdout 732 1466 | stderr 732 1467 | stdout 733 1468 | stderr 733 1469 | stdout 734 1470 | stderr 734 1471 | stdout 735 1472 | stderr 735 1473 | stdout 736 1474 | stderr 736 1475 | stdout 737 1476 | stderr 737 1477 | stdout 738 1478 | stderr 738 1479 | stdout 739 1480 | stderr 739 1481 | stdout 740 1482 | stderr 740 1483 | stdout 741 1484 | stderr 741 1485 | stdout 742 1486 | stderr 742 1487 | stdout 743 1488 | stderr 743 1489 | stdout 744 1490 | stderr 744 1491 | stdout 745 1492 | stderr 745 1493 | stdout 746 1494 | stderr 746 1495 | stdout 747 1496 | stderr 747 1497 | stdout 748 1498 | stderr 748 1499 | stdout 749 1500 | stderr 749 1501 | stdout 750 1502 | stderr 750 1503 | stdout 751 1504 | stderr 751 1505 | stdout 752 1506 | stderr 752 1507 | stdout 753 1508 | stderr 753 1509 | stdout 754 1510 | stderr 754 1511 | stdout 755 1512 | stderr 755 1513 | stdout 756 1514 | stderr 756 1515 | stdout 757 1516 | stderr 757 1517 | stdout 758 1518 | stderr 758 1519 | stdout 759 1520 | stderr 759 1521 | stdout 760 1522 | stderr 760 1523 | stdout 761 1524 | stderr 761 1525 | stdout 762 1526 | stderr 762 1527 | stdout 763 1528 | stderr 763 1529 | stdout 764 1530 | stderr 764 1531 | stdout 765 1532 | stderr 765 1533 | stdout 766 1534 | stderr 766 1535 | stdout 767 1536 | stderr 767 1537 | stdout 768 1538 | stderr 768 1539 | stdout 769 1540 | stderr 769 1541 | stdout 770 1542 | stderr 770 1543 | stdout 771 1544 | stderr 771 1545 | stdout 772 1546 | stderr 772 1547 | stdout 773 1548 | stderr 773 1549 | stdout 774 1550 | stderr 774 1551 | stdout 775 1552 | stderr 775 1553 | stdout 776 1554 | stderr 776 1555 | stdout 777 1556 | stderr 777 1557 | stdout 778 1558 | stderr 778 1559 | stdout 779 1560 | stderr 779 1561 | stdout 780 1562 | stderr 780 1563 | stdout 781 1564 | stderr 781 1565 | stdout 782 1566 | stderr 782 1567 | stdout 783 1568 | stderr 783 1569 | stdout 784 1570 | stderr 784 1571 | stdout 785 1572 | stderr 785 1573 | stdout 786 1574 | stderr 786 1575 | stdout 787 1576 | stderr 787 1577 | stdout 788 1578 | stderr 788 1579 | stdout 789 1580 | stderr 789 1581 | stdout 790 1582 | stderr 790 1583 | stdout 791 1584 | stderr 791 1585 | stdout 792 1586 | stderr 792 1587 | stdout 793 1588 | stderr 793 1589 | stdout 794 1590 | stderr 794 1591 | stdout 795 1592 | stderr 795 1593 | stdout 796 1594 | stderr 796 1595 | stdout 797 1596 | stderr 797 1597 | stdout 798 1598 | stderr 798 1599 | stdout 799 1600 | stderr 799 1601 | stdout 800 1602 | stderr 800 1603 | stdout 801 1604 | stderr 801 1605 | stdout 802 1606 | stderr 802 1607 | stdout 803 1608 | stderr 803 1609 | stdout 804 1610 | stderr 804 1611 | stdout 805 1612 | stderr 805 1613 | stdout 806 1614 | stderr 806 1615 | stdout 807 1616 | stderr 807 1617 | stdout 808 1618 | stderr 808 1619 | stdout 809 1620 | stderr 809 1621 | stdout 810 1622 | stderr 810 1623 | stdout 811 1624 | stderr 811 1625 | stdout 812 1626 | stderr 812 1627 | stdout 813 1628 | stderr 813 1629 | stdout 814 1630 | stderr 814 1631 | stdout 815 1632 | stderr 815 1633 | stdout 816 1634 | stderr 816 1635 | stdout 817 1636 | stderr 817 1637 | stdout 818 1638 | stderr 818 1639 | stdout 819 1640 | stderr 819 1641 | stdout 820 1642 | stderr 820 1643 | stdout 821 1644 | stderr 821 1645 | stdout 822 1646 | stderr 822 1647 | stdout 823 1648 | stderr 823 1649 | stdout 824 1650 | stderr 824 1651 | stdout 825 1652 | stderr 825 1653 | stdout 826 1654 | stderr 826 1655 | stdout 827 1656 | stderr 827 1657 | stdout 828 1658 | stderr 828 1659 | stdout 829 1660 | stderr 829 1661 | stdout 830 1662 | stderr 830 1663 | stdout 831 1664 | stderr 831 1665 | stdout 832 1666 | stderr 832 1667 | stdout 833 1668 | stderr 833 1669 | stdout 834 1670 | stderr 834 1671 | stdout 835 1672 | stderr 835 1673 | stdout 836 1674 | stderr 836 1675 | stdout 837 1676 | stderr 837 1677 | stdout 838 1678 | stderr 838 1679 | stdout 839 1680 | stderr 839 1681 | stdout 840 1682 | stderr 840 1683 | stdout 841 1684 | stderr 841 1685 | stdout 842 1686 | stderr 842 1687 | stdout 843 1688 | stderr 843 1689 | stdout 844 1690 | stderr 844 1691 | stdout 845 1692 | stderr 845 1693 | stdout 846 1694 | stderr 846 1695 | stdout 847 1696 | stderr 847 1697 | stdout 848 1698 | stderr 848 1699 | stdout 849 1700 | stderr 849 1701 | stdout 850 1702 | stderr 850 1703 | stdout 851 1704 | stderr 851 1705 | stdout 852 1706 | stderr 852 1707 | stdout 853 1708 | stderr 853 1709 | stdout 854 1710 | stderr 854 1711 | stdout 855 1712 | stderr 855 1713 | stdout 856 1714 | stderr 856 1715 | stdout 857 1716 | stderr 857 1717 | stdout 858 1718 | stderr 858 1719 | stdout 859 1720 | stderr 859 1721 | stdout 860 1722 | stderr 860 1723 | stdout 861 1724 | stderr 861 1725 | stdout 862 1726 | stderr 862 1727 | stdout 863 1728 | stderr 863 1729 | stdout 864 1730 | stderr 864 1731 | stdout 865 1732 | stderr 865 1733 | stdout 866 1734 | stderr 866 1735 | stdout 867 1736 | stderr 867 1737 | stdout 868 1738 | stderr 868 1739 | stdout 869 1740 | stderr 869 1741 | stdout 870 1742 | stderr 870 1743 | stdout 871 1744 | stderr 871 1745 | stdout 872 1746 | stderr 872 1747 | stdout 873 1748 | stderr 873 1749 | stdout 874 1750 | stderr 874 1751 | stdout 875 1752 | stderr 875 1753 | stdout 876 1754 | stderr 876 1755 | stdout 877 1756 | stderr 877 1757 | stdout 878 1758 | stderr 878 1759 | stdout 879 1760 | stderr 879 1761 | stdout 880 1762 | stderr 880 1763 | stdout 881 1764 | stderr 881 1765 | stdout 882 1766 | stderr 882 1767 | stdout 883 1768 | stderr 883 1769 | stdout 884 1770 | stderr 884 1771 | stdout 885 1772 | stderr 885 1773 | stdout 886 1774 | stderr 886 1775 | stdout 887 1776 | stderr 887 1777 | stdout 888 1778 | stderr 888 1779 | stdout 889 1780 | stderr 889 1781 | stdout 890 1782 | stderr 890 1783 | stdout 891 1784 | stderr 891 1785 | stdout 892 1786 | stderr 892 1787 | stdout 893 1788 | stderr 893 1789 | stdout 894 1790 | stderr 894 1791 | stdout 895 1792 | stderr 895 1793 | stdout 896 1794 | stderr 896 1795 | stdout 897 1796 | stderr 897 1797 | stdout 898 1798 | stderr 898 1799 | stdout 899 1800 | stderr 899 1801 | stdout 900 1802 | stderr 900 1803 | stdout 901 1804 | stderr 901 1805 | stdout 902 1806 | stderr 902 1807 | stdout 903 1808 | stderr 903 1809 | stdout 904 1810 | stderr 904 1811 | stdout 905 1812 | stderr 905 1813 | stdout 906 1814 | stderr 906 1815 | stdout 907 1816 | stderr 907 1817 | stdout 908 1818 | stderr 908 1819 | stdout 909 1820 | stderr 909 1821 | stdout 910 1822 | stderr 910 1823 | stdout 911 1824 | stderr 911 1825 | stdout 912 1826 | stderr 912 1827 | stdout 913 1828 | stderr 913 1829 | stdout 914 1830 | stderr 914 1831 | stdout 915 1832 | stderr 915 1833 | stdout 916 1834 | stderr 916 1835 | stdout 917 1836 | stderr 917 1837 | stdout 918 1838 | stderr 918 1839 | stdout 919 1840 | stderr 919 1841 | stdout 920 1842 | stderr 920 1843 | stdout 921 1844 | stderr 921 1845 | stdout 922 1846 | stderr 922 1847 | stdout 923 1848 | stderr 923 1849 | stdout 924 1850 | stderr 924 1851 | stdout 925 1852 | stderr 925 1853 | stdout 926 1854 | stderr 926 1855 | stdout 927 1856 | stderr 927 1857 | stdout 928 1858 | stderr 928 1859 | stdout 929 1860 | stderr 929 1861 | stdout 930 1862 | stderr 930 1863 | stdout 931 1864 | stderr 931 1865 | stdout 932 1866 | stderr 932 1867 | stdout 933 1868 | stderr 933 1869 | stdout 934 1870 | stderr 934 1871 | stdout 935 1872 | stderr 935 1873 | stdout 936 1874 | stderr 936 1875 | stdout 937 1876 | stderr 937 1877 | stdout 938 1878 | stderr 938 1879 | stdout 939 1880 | stderr 939 1881 | stdout 940 1882 | stderr 940 1883 | stdout 941 1884 | stderr 941 1885 | stdout 942 1886 | stderr 942 1887 | stdout 943 1888 | stderr 943 1889 | stdout 944 1890 | stderr 944 1891 | stdout 945 1892 | stderr 945 1893 | stdout 946 1894 | stderr 946 1895 | stdout 947 1896 | stderr 947 1897 | stdout 948 1898 | stderr 948 1899 | stdout 949 1900 | stderr 949 1901 | stdout 950 1902 | stderr 950 1903 | stdout 951 1904 | stderr 951 1905 | stdout 952 1906 | stderr 952 1907 | stdout 953 1908 | stderr 953 1909 | stdout 954 1910 | stderr 954 1911 | stdout 955 1912 | stderr 955 1913 | stdout 956 1914 | stderr 956 1915 | stdout 957 1916 | stderr 957 1917 | stdout 958 1918 | stderr 958 1919 | stdout 959 1920 | stderr 959 1921 | stdout 960 1922 | stderr 960 1923 | stdout 961 1924 | stderr 961 1925 | stdout 962 1926 | stderr 962 1927 | stdout 963 1928 | stderr 963 1929 | stdout 964 1930 | stderr 964 1931 | stdout 965 1932 | stderr 965 1933 | stdout 966 1934 | stderr 966 1935 | stdout 967 1936 | stderr 967 1937 | stdout 968 1938 | stderr 968 1939 | stdout 969 1940 | stderr 969 1941 | stdout 970 1942 | stderr 970 1943 | stdout 971 1944 | stderr 971 1945 | stdout 972 1946 | stderr 972 1947 | stdout 973 1948 | stderr 973 1949 | stdout 974 1950 | stderr 974 1951 | stdout 975 1952 | stderr 975 1953 | stdout 976 1954 | stderr 976 1955 | stdout 977 1956 | stderr 977 1957 | stdout 978 1958 | stderr 978 1959 | stdout 979 1960 | stderr 979 1961 | stdout 980 1962 | stderr 980 1963 | stdout 981 1964 | stderr 981 1965 | stdout 982 1966 | stderr 982 1967 | stdout 983 1968 | stderr 983 1969 | stdout 984 1970 | stderr 984 1971 | stdout 985 1972 | stderr 985 1973 | stdout 986 1974 | stderr 986 1975 | stdout 987 1976 | stderr 987 1977 | stdout 988 1978 | stderr 988 1979 | stdout 989 1980 | stderr 989 1981 | stdout 990 1982 | stderr 990 1983 | stdout 991 1984 | stderr 991 1985 | stdout 992 1986 | stderr 992 1987 | stdout 993 1988 | stderr 993 1989 | stdout 994 1990 | stderr 994 1991 | stdout 995 1992 | stderr 995 1993 | stdout 996 1994 | stderr 996 1995 | stdout 997 1996 | stderr 997 1997 | stdout 998 1998 | stderr 998 1999 | stdout 999 2000 | stderr 999 2001 | --------------------------------------------------------------------------------