├── .npmrc ├── index.js ├── test ├── .eslintrc └── index.js ├── target ├── es5.js ├── es2015.js ├── es2016.js ├── es2020.js ├── es2018.js ├── es2019.js └── es2017.js ├── .eslintrc ├── .gitignore ├── LICENSE ├── package.json ├── README.md ├── CHANGELOG.md └── .travis.yml /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./target/es5'); 4 | -------------------------------------------------------------------------------- /test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "func-names": 0, 4 | }, 5 | } 6 | -------------------------------------------------------------------------------- /target/es5.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('es5-shim'); 4 | require('es5-shim/es5-sham'); 5 | 6 | require('./es2015'); 7 | -------------------------------------------------------------------------------- /target/es2015.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('es6-shim'); 4 | 5 | require('function.prototype.name/shim')(); 6 | 7 | require('./es2016'); 8 | -------------------------------------------------------------------------------- /target/es2016.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Array#includes is stage 4, in ES7/ES2016 4 | require('array-includes/shim')(); 5 | 6 | require('./es2017'); 7 | -------------------------------------------------------------------------------- /target/es2020.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('string.prototype.matchall/auto'); 4 | 5 | require('globalthis/auto'); 6 | 7 | require('promise.allsettled/auto'); 8 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "airbnb-base/legacy", 5 | 6 | "rules": { 7 | "strict": [2, "global"], 8 | "vars-on-top": 0, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /target/es2018.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (typeof Promise === 'function') { 4 | require('promise.prototype.finally/auto'); // eslint-disable-line global-require 5 | } 6 | 7 | require('./es2019'); 8 | -------------------------------------------------------------------------------- /target/es2019.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('array.prototype.flat/auto'); 4 | require('array.prototype.flatmap/auto'); 5 | 6 | require('symbol.prototype.description/auto'); 7 | 8 | require('object.fromentries/auto'); 9 | 10 | require('./es2020'); 11 | -------------------------------------------------------------------------------- /target/es2017.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Object.values/Object.entries are stage 4, in ES2017 4 | require('object.values/shim')(); 5 | require('object.entries/shim')(); 6 | 7 | // String#padStart/String#padEnd are stage 4, in ES2017 8 | require('string.prototype.padstart/shim')(); 9 | require('string.prototype.padend/shim')(); 10 | 11 | // Object.getOwnPropertyDescriptors is stage 4, in ES2017 12 | require('object.getownpropertydescriptors/shim')(); 13 | 14 | require('./es2018'); 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | 29 | # Only apps should have lockfiles 30 | npm-shrinkwrap.json 31 | yarn.lock 32 | package-lock.json 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2015 Airbnb 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint global-require: 0 */ 4 | 5 | var fs = require('fs'); 6 | var path = require('path'); 7 | 8 | var test = require('tape'); 9 | 10 | // delete es-abstract from the require cache 11 | Object.keys(require.cache) 12 | .filter(function (x) { return /\/es-abstract\//.test(x); }) 13 | .forEach(function (x) { delete require.cache[x]; }); 14 | 15 | test('main', function (t) { 16 | require('../'); 17 | t.ok(true, 'parses'); 18 | t.end(); 19 | }); 20 | 21 | test('targets', function (t) { 22 | var targetsPath = path.join(__dirname, '../target'); 23 | var targets = fs.readdirSync(targetsPath); 24 | 25 | targets.sort(function (a, b) { 26 | if (/es5\.js$/.test(a)) { 27 | return 1; 28 | } 29 | if (/es5\.js$/.test(b)) { 30 | return 1; 31 | } 32 | return a.localeCompare(b); 33 | }); 34 | t.comment('importing targets: ' + targets.join(',')); 35 | targets.forEach(function (target) { 36 | t.test(target, function (st) { 37 | require(path.join(targetsPath, target)); 38 | st.ok(true, 'parses'); 39 | st.end(); 40 | }); 41 | }); 42 | t.end(); 43 | }); 44 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "airbnb-js-shims", 3 | "version": "2.2.1", 4 | "description": "JS language shims used by Airbnb.", 5 | "main": "index.js", 6 | "scripts": { 7 | "prepublish": "safe-publish-latest", 8 | "lint": "eslint .", 9 | "pretest": "npm run lint", 10 | "test": "npm run tests-only", 11 | "tests-only": "node test", 12 | "posttest": "npm run audit", 13 | "preaudit": "npm install --package-lock --package-lock-only", 14 | "audit": "npm audit", 15 | "postaudit": "rm package-lock.json" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/airbnb/js-shims.git" 20 | }, 21 | "keywords": [ 22 | "shims", 23 | "polyfills" 24 | ], 25 | "author": "Jordan Harband ", 26 | "license": "MIT", 27 | "dependencies": { 28 | "array-includes": "^3.0.3", 29 | "array.prototype.flat": "^1.2.1", 30 | "array.prototype.flatmap": "^1.2.1", 31 | "es5-shim": "^4.5.13", 32 | "es6-shim": "^0.35.5", 33 | "function.prototype.name": "^1.1.0", 34 | "globalthis": "^1.0.0", 35 | "object.entries": "^1.1.0", 36 | "object.fromentries": "^2.0.0 || ^1.0.0", 37 | "object.getownpropertydescriptors": "^2.0.3", 38 | "object.values": "^1.1.0", 39 | "promise.allsettled": "^1.0.0", 40 | "promise.prototype.finally": "^3.1.0", 41 | "string.prototype.matchall": "^4.0.0 || ^3.0.1", 42 | "string.prototype.padend": "^3.0.0", 43 | "string.prototype.padstart": "^3.0.0", 44 | "symbol.prototype.description": "^1.0.0" 45 | }, 46 | "devDependencies": { 47 | "eslint": "^5.16.0", 48 | "eslint-config-airbnb-base": "^13.1.0", 49 | "eslint-plugin-import": "^2.17.2", 50 | "safe-publish-latest": "^1.1.2", 51 | "tape": "^4.10.1" 52 | }, 53 | "publishConfig": { 54 | "access": "public" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # airbnb-js-shims [![Version Badge][2]][1] 2 | 3 | JS language shims used by Airbnb. 4 | 5 | Just require/import `airbnb-js-shims`, and the environment will be shimmed. 6 | 7 | ```js 8 | import 'airbnb-js-shims'; 9 | ``` 10 | 11 | ## Included shims 12 | 13 | - [es5-shim](https://www.npmjs.com/package/es5-shim) 14 | - [es5-sham](https://www.npmjs.com/package/es5-shim#shams) 15 | - [es6-shim](https://www.npmjs.com/package/es6-shim) 16 | - [Function.prototype.name](https://www.npmjs.com/package/function.prototype.name) 17 | - [Array.prototype.includes](https://www.npmjs.com/package/array-includes) (ES7/ES2016) 18 | - [Object.entries](https://www.npmjs.com/package/object.entries) (ES8/ES2017) 19 | - [Object.values](https://www.npmjs.com/package/object.values) (ES8/ES2017) 20 | - [String.prototype.padStart](https://www.npmjs.com/package/string.prototype.padstart) (ES8/ES2017) 21 | - [String.prototype.padEnd](https://www.npmjs.com/package/string.prototype.padend) (ES8/ES2017) 22 | - [Promise.prototype.finally](https://npmjs.com/package/promise.prototype.finally) (ES2018) 23 | - [Array.prototype.flat](https://npmjs.com/package/array.prototype.flat) (ES2019) 24 | - [Array.prototype.flatMap](https://npmjs.com/package/array.prototype.flatmap) (ES2019) 25 | - [Symbol.prototype.description](https://npmjs.com/package/symbol.prototype.description) (ES2019) 26 | - [Object.fromEntries](https://npmjs.com/package/object.fromentries) (ES2019) 27 | - [String.prototype.matchAll](https://npmjs.com/package/string.prototype.matchall) (ES2019) 28 | - [globalThis](https://www.npmjs.com/package/globalthis) (Stage 3) 29 | - [Promise.allSettled](https://www.npmjs.com/package/promise.allsettled) (Stage 3) 30 | 31 | ## Targeting versions 32 | 33 | If you do not need to support older browsers, you can pick a subset of ES versions to target. For example, if you don't support pre-ES5 browsers, you can start your shims with ES2015 by requiring/importing the specific target file. This will shim the environment for that version and upward. 34 | 35 | ```js 36 | import 'airbnb-js-shims/target/es2015'; 37 | ``` 38 | 39 | ### Included targets 40 | 41 | - `airbnb-js-shims/target/es5` (default) 42 | - `airbnb-js-shims/target/es2015` 43 | - `airbnb-js-shims/target/es2016` 44 | - `airbnb-js-shims/target/es2017` 45 | - `airbnb-js-shims/target/es2018` 46 | - `airbnb-js-shims/target/es2019` 47 | - `airbnb-js-shims/target/es2020` 48 | 49 | [1]: https://npmjs.org/package/airbnb-js-shims 50 | [2]: http://versionbadg.es/airbnb/js-shims.svg 51 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2.2.1 / 2019-11-15 2 | ================= 3 | * Allow `string.prototype.matchall` v4 4 | 5 | 2.2.0 / 2019-04-25 6 | ================= 7 | * [New] add `es2020` target; add `globalthis` and `promise.allsettled` shims 8 | * [Deps] update `object.entries`, `object.fromentries`, `object.values`, `string.prototype.matchall`, `es5-shim`, `es6-shim` 9 | * [Dev Deps] update `eslint`, `eslint-config-airbnb-base`, `eslint-plugin-import`, `safe-publish-latest`, `tape` 10 | * [Docs] Update proposals that are in the language 11 | * [Tests] use `npm audit` instead of `nsp` 12 | 13 | 2.1.1 / 2018-08-31 14 | ================= 15 | * [meta] add license text (#8) 16 | * [docs] fix link to flatMap package (#7) 17 | 18 | 2.1.0 / 2018-07-25 19 | ================= 20 | * [New] add `Object.fromEntries` 21 | 22 | 2.0.0 / 2018-06-14 23 | ================= 24 | * [Breaking] remove `Array.prototype.flatten` 25 | 26 | 1.7.1 / 2018-08-31 27 | ================= 28 | * [meta] add license text (#8) 29 | * [docs] fix link to flatMap package (#7) 30 | 31 | 1.7.0 / 2018-07-25 32 | ================= 33 | * [New] add `Object.fromEntries` 34 | 35 | 1.6.0 / 2018-05-31 36 | ================= 37 | * [New] add `String.prototype.matchAll`, and `es2019` target 38 | 39 | 1.5.2 / 2018-05-27 40 | ================= 41 | * [Fix] restore `.flatten()` 42 | 43 | 1.5.1 / 2018-05-22 44 | ================= 45 | * [Fix] actually add `Array.prototype.flat` and `Symbol.prototype.description` 46 | 47 | 1.5.0 / 2018-05-22 48 | ================= 49 | * [New] add `array.prototype.flat`, deprecate `Array.prototype.flatten` 50 | * [New] add `symbol.prototype.description` 51 | * [Deps] update `array.prototype.flatten`, `array.prototype.flatmap` 52 | * [Dev Deps] update `eslint`, `eslint-plugin-import`, `nsp`, `tape` 53 | 54 | 1.4.1 / 2018-01-24 55 | ================= 56 | * [Docs] Promise.prototype.finally is at stage 4 57 | * [Deps] update `array.prototype.flatmap`, `array.prototype.flatten`, `es5-shim`, `function.prototype.name` 58 | * [Dev Deps] update `eslint` 59 | * [Tests] up to `node` `v9.4`; pin included builds to LTS 60 | 61 | 1.4.0 / 2017-11-29 62 | ================= 63 | * [New] add `Array.prototype.flat{ten,Map}`, now at stage 3 64 | * [Deps] update `promise.prototype.finally` 65 | * [Dev Deps] update `eslint`, `eslint-config-airbnb-base`, `eslint-plugin-import`, `tape` 66 | * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS 67 | 68 | 1.3.0 / 2017-07-28 69 | ================= 70 | * [New] add `promise.prototype.finally` shim, and ES2018 target 71 | * [Deps] update `function.prototype.name` 72 | * [Dev Deps] update `eslint`, `eslint-config-airbnb-base` 73 | 74 | 1.2.0 / 2017-07-14 75 | ================= 76 | * [New] add `Function#name` shim for IE 9-11 77 | * [Deps] update `array-includes`, `es6-shim`, `object.entries`, `object.values` 78 | * [Dev Deps] update `eslint`, `eslint-plugin-import`, `safe-publish-latest`, `tape`; switch to `eslint-config-airbnb-base` 79 | * [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`, `v5.12`, `v4.8`; improve matrix; newer npms fail on older nodes 80 | * [Tests] ensure all target files parse 81 | 82 | 1.1.1 / 2017-02-16 83 | ================= 84 | * [Fix] Correctly require es2017 from es2016 85 | 86 | 1.1.0 / 2017-02-15 87 | ================= 88 | * [New] Add entry points for targeting specific ES versions 89 | 90 | 1.0.1 / 2016-08-17 91 | ================= 92 | * [Deps] update `es5-shim`, `es6-shim`, `object.getownpropertydescriptors` 93 | * [Dev Deps] update `tape` 94 | * [Docs] Update things that are now stage 4 95 | * [Tests] move tests into test dir 96 | * [Tests] add `npm run lint` 97 | 98 | 1.0.0 / 2016-03-24 99 | ================= 100 | * Initial release. 101 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | os: 3 | - linux 4 | node_js: 5 | - "9.4" 6 | - "8.9" 7 | - "7.10" 8 | - "6.12" 9 | - "5.12" 10 | - "4.8" 11 | - "iojs-v3.3" 12 | - "iojs-v2.5" 13 | - "iojs-v1.8" 14 | - "0.12" 15 | - "0.10" 16 | - "0.8" 17 | before_install: 18 | - 'nvm install-latest-npm' 19 | install: 20 | - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' 21 | script: 22 | - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' 23 | - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' 24 | - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' 25 | - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' 26 | sudo: false 27 | env: 28 | - TEST=true 29 | matrix: 30 | fast_finish: true 31 | include: 32 | - node_js: "lts/*" 33 | env: PRETEST=true 34 | - node_js: "lts/*" 35 | env: POSTTEST=true 36 | - node_js: "4" 37 | env: COVERAGE=true 38 | - node_js: "9.3" 39 | env: TEST=true ALLOW_FAILURE=true 40 | - node_js: "9.2" 41 | env: TEST=true ALLOW_FAILURE=true 42 | - node_js: "9.1" 43 | env: TEST=true ALLOW_FAILURE=true 44 | - node_js: "9.0" 45 | env: TEST=true ALLOW_FAILURE=true 46 | - node_js: "8.8" 47 | env: TEST=true ALLOW_FAILURE=true 48 | - node_js: "8.7" 49 | env: TEST=true ALLOW_FAILURE=true 50 | - node_js: "8.6" 51 | env: TEST=true ALLOW_FAILURE=true 52 | - node_js: "8.5" 53 | env: TEST=true ALLOW_FAILURE=true 54 | - node_js: "8.4" 55 | env: TEST=true ALLOW_FAILURE=true 56 | - node_js: "8.3" 57 | env: TEST=true ALLOW_FAILURE=true 58 | - node_js: "8.2" 59 | env: TEST=true ALLOW_FAILURE=true 60 | - node_js: "8.1" 61 | env: TEST=true ALLOW_FAILURE=true 62 | - node_js: "8.0" 63 | env: TEST=true ALLOW_FAILURE=true 64 | - node_js: "7.9" 65 | env: TEST=true ALLOW_FAILURE=true 66 | - node_js: "7.8" 67 | env: TEST=true ALLOW_FAILURE=true 68 | - node_js: "7.7" 69 | env: TEST=true ALLOW_FAILURE=true 70 | - node_js: "7.6" 71 | env: TEST=true ALLOW_FAILURE=true 72 | - node_js: "7.5" 73 | env: TEST=true ALLOW_FAILURE=true 74 | - node_js: "7.4" 75 | env: TEST=true ALLOW_FAILURE=true 76 | - node_js: "7.3" 77 | env: TEST=true ALLOW_FAILURE=true 78 | - node_js: "7.2" 79 | env: TEST=true ALLOW_FAILURE=true 80 | - node_js: "7.1" 81 | env: TEST=true ALLOW_FAILURE=true 82 | - node_js: "7.0" 83 | env: TEST=true ALLOW_FAILURE=true 84 | - node_js: "6.11" 85 | env: TEST=true ALLOW_FAILURE=true 86 | - node_js: "6.10" 87 | env: TEST=true ALLOW_FAILURE=true 88 | - node_js: "6.9" 89 | env: TEST=true ALLOW_FAILURE=true 90 | - node_js: "6.8" 91 | env: TEST=true ALLOW_FAILURE=true 92 | - node_js: "6.7" 93 | env: TEST=true ALLOW_FAILURE=true 94 | - node_js: "6.6" 95 | env: TEST=true ALLOW_FAILURE=true 96 | - node_js: "6.5" 97 | env: TEST=true ALLOW_FAILURE=true 98 | - node_js: "6.4" 99 | env: TEST=true ALLOW_FAILURE=true 100 | - node_js: "6.3" 101 | env: TEST=true ALLOW_FAILURE=true 102 | - node_js: "6.2" 103 | env: TEST=true ALLOW_FAILURE=true 104 | - node_js: "6.1" 105 | env: TEST=true ALLOW_FAILURE=true 106 | - node_js: "6.0" 107 | env: TEST=true ALLOW_FAILURE=true 108 | - node_js: "5.11" 109 | env: TEST=true ALLOW_FAILURE=true 110 | - node_js: "5.10" 111 | env: TEST=true ALLOW_FAILURE=true 112 | - node_js: "5.9" 113 | env: TEST=true ALLOW_FAILURE=true 114 | - node_js: "5.8" 115 | env: TEST=true ALLOW_FAILURE=true 116 | - node_js: "5.7" 117 | env: TEST=true ALLOW_FAILURE=true 118 | - node_js: "5.6" 119 | env: TEST=true ALLOW_FAILURE=true 120 | - node_js: "5.5" 121 | env: TEST=true ALLOW_FAILURE=true 122 | - node_js: "5.4" 123 | env: TEST=true ALLOW_FAILURE=true 124 | - node_js: "5.3" 125 | env: TEST=true ALLOW_FAILURE=true 126 | - node_js: "5.2" 127 | env: TEST=true ALLOW_FAILURE=true 128 | - node_js: "5.1" 129 | env: TEST=true ALLOW_FAILURE=true 130 | - node_js: "5.0" 131 | env: TEST=true ALLOW_FAILURE=true 132 | - node_js: "4.7" 133 | env: TEST=true ALLOW_FAILURE=true 134 | - node_js: "4.6" 135 | env: TEST=true ALLOW_FAILURE=true 136 | - node_js: "4.5" 137 | env: TEST=true ALLOW_FAILURE=true 138 | - node_js: "4.4" 139 | env: TEST=true ALLOW_FAILURE=true 140 | - node_js: "4.3" 141 | env: TEST=true ALLOW_FAILURE=true 142 | - node_js: "4.2" 143 | env: TEST=true ALLOW_FAILURE=true 144 | - node_js: "4.1" 145 | env: TEST=true ALLOW_FAILURE=true 146 | - node_js: "4.0" 147 | env: TEST=true ALLOW_FAILURE=true 148 | - node_js: "iojs-v3.2" 149 | env: TEST=true ALLOW_FAILURE=true 150 | - node_js: "iojs-v3.1" 151 | env: TEST=true ALLOW_FAILURE=true 152 | - node_js: "iojs-v3.0" 153 | env: TEST=true ALLOW_FAILURE=true 154 | - node_js: "iojs-v2.4" 155 | env: TEST=true ALLOW_FAILURE=true 156 | - node_js: "iojs-v2.3" 157 | env: TEST=true ALLOW_FAILURE=true 158 | - node_js: "iojs-v2.2" 159 | env: TEST=true ALLOW_FAILURE=true 160 | - node_js: "iojs-v2.1" 161 | env: TEST=true ALLOW_FAILURE=true 162 | - node_js: "iojs-v2.0" 163 | env: TEST=true ALLOW_FAILURE=true 164 | - node_js: "iojs-v1.7" 165 | env: TEST=true ALLOW_FAILURE=true 166 | - node_js: "iojs-v1.6" 167 | env: TEST=true ALLOW_FAILURE=true 168 | - node_js: "iojs-v1.5" 169 | env: TEST=true ALLOW_FAILURE=true 170 | - node_js: "iojs-v1.4" 171 | env: TEST=true ALLOW_FAILURE=true 172 | - node_js: "iojs-v1.3" 173 | env: TEST=true ALLOW_FAILURE=true 174 | - node_js: "iojs-v1.2" 175 | env: TEST=true ALLOW_FAILURE=true 176 | - node_js: "iojs-v1.1" 177 | env: TEST=true ALLOW_FAILURE=true 178 | - node_js: "iojs-v1.0" 179 | env: TEST=true ALLOW_FAILURE=true 180 | - node_js: "0.11" 181 | env: TEST=true ALLOW_FAILURE=true 182 | - node_js: "0.9" 183 | env: TEST=true ALLOW_FAILURE=true 184 | - node_js: "0.6" 185 | env: TEST=true ALLOW_FAILURE=true 186 | - node_js: "0.4" 187 | env: TEST=true ALLOW_FAILURE=true 188 | allow_failures: 189 | - os: osx 190 | - env: TEST=true ALLOW_FAILURE=true 191 | - env: COVERAGE=true 192 | --------------------------------------------------------------------------------