From 2a82dea7bbde9773c0fbae64f7a70f9236effd86 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 13:59:35 -0800 Subject: [PATCH 1/6] [Tests] use shared travis-ci configs --- .travis.yml | 310 ++------------------------------------------------- package.json | 1 - 2 files changed, 7 insertions(+), 304 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9e17342..2d1c1d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,308 +1,12 @@ +version: ~> 1.0 language: node_js os: - linux -node_js: - - "12.7" - - "11.15" - - "10.16" - - "9.11" - - "8.16" - - "7.10" - - "6.17" - - "5.12" - - "4.9" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" -before_install: - - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac' - - 'nvm install-latest-npm' -install: - - '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;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true +import: + - ljharb/travis-ci:node/all.yml + - ljharb/travis-ci:node/pretest.yml + - ljharb/travis-ci:node/posttest.yml + - ljharb/travis-ci:node/coverage.yml matrix: - fast_finish: true - include: - - node_js: "lts/*" - env: PRETEST=true - - node_js: "lts/*" - env: POSTTEST=true - - node_js: "12.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.16" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true + - env: COVERAGE=true diff --git a/package.json b/package.json index f7afa24..574dbf3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "test:shimmed": "node test/shimmed.js", "test:module": "node test/index.js", "coverage": "covert test/*.js", - "coverage-quiet": "covert test/*.js --quiet", "lint": "eslint .", "preaudit": "npm install --package-lock --package-lock-only", "audit": "npm audit", From 80080cdd93f8dbceb3383864e4d18f8cbb4947c0 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 14:00:23 -0800 Subject: [PATCH 2/6] [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops --- package.json | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 574dbf3..e4648ea 100644 --- a/package.json +++ b/package.json @@ -6,17 +6,14 @@ "license": "MIT", "main": "index.js", "scripts": { - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npm run audit", - "tests-only": "es-shim-api && npm run --silent test:shimmed && npm run --silent test:module", - "test:shimmed": "node test/shimmed.js", - "test:module": "node test/index.js", + "pretest": "npm run lint", + "test": "npm run tests-only", + "posttest": "npx aud", + "tests-only": "es-shim-api && npm run test:shimmed && npm run test:module", + "test:shimmed": "node test/shimmed", + "test:module": "node test/index", "coverage": "covert test/*.js", - "lint": "eslint .", - "preaudit": "npm install --package-lock --package-lock-only", - "audit": "npm audit", - "postaudit": "rm package-lock.json" + "lint": "eslint ." }, "repository": { "type": "git", From c74ad8adcb78173f8e9cec541366c21307587de4 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 14:03:58 -0800 Subject: [PATCH 3/6] [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names` --- package.json | 6 +++--- test/tests.js | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e4648ea..3ffeaea 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,11 @@ }, "devDependencies": { "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^13.1.1", + "@ljharb/eslint-config": "^15.0.2", "array-map": "^0.0.0", "covert": "^1.1.1", - "eslint": "^5.16.0", - "functions-have-names": "^1.1.0", + "eslint": "^6.7.2", + "functions-have-names": "^1.2.0", "object-keys": "^1.1.1", "tape": "^4.11.0" }, diff --git a/test/tests.js b/test/tests.js index 6ceb84a..6055983 100644 --- a/test/tests.js +++ b/test/tests.js @@ -1,7 +1,5 @@ 'use strict'; -/* global Symbol */ - var keys = require('object-keys'); var map = require('array-map'); var define = require('define-properties'); From 110dbca51bc0413bab11fe56dabc5d0a373415a7 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 14:04:58 -0800 Subject: [PATCH 4/6] [meta] add `funding` field --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 3ffeaea..1014050 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,10 @@ { "name": "object.values", "version": "1.1.0", - "author": "Jordan Harband", + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, "description": "ES2017 spec-compliant Object.values shim.", "license": "MIT", "main": "index.js", From e8a92975258fd674a2c00380f7ee7c2adb6ee009 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 14:05:03 -0800 Subject: [PATCH 5/6] [actions] add automatic rebasing / merge commit blocking See https://github.com/ljharb/es-abstract/pull/74 --- .github/workflows/rebase.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/rebase.yml diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml new file mode 100644 index 0000000..436cb79 --- /dev/null +++ b/.github/workflows/rebase.yml @@ -0,0 +1,15 @@ +name: Automatic Rebase + +on: [pull_request] + +jobs: + _: + name: "Automatic Rebase" + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - uses: ljharb/rebase@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From a8ac36fcad70e86a42d08cf0163f7b23945a3f45 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 12 Dec 2019 14:06:39 -0800 Subject: [PATCH 6/6] [Refactor] use split-up `es-abstract` (85% bundle size decrease) --- .eslintrc | 1 + implementation.js | 11 ++++++----- package.json | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.eslintrc b/.eslintrc index 3378618..15c95c1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,6 +4,7 @@ "extends": "@ljharb", "rules": { + "id-length": 0, "new-cap": [2, { "capIsNewExceptions": ["RequireObjectCoercible"] }], "no-magic-numbers": [0], "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"] diff --git a/implementation.js b/implementation.js index f834ac7..dd3bc07 100644 --- a/implementation.js +++ b/implementation.js @@ -1,15 +1,16 @@ 'use strict'; -var ES = require('es-abstract/es7'); var has = require('has'); -var bind = require('function-bind'); -var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); +var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible'); +var callBound = require('es-abstract/helpers/callBound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); module.exports = function values(O) { - var obj = ES.RequireObjectCoercible(O); + var obj = RequireObjectCoercible(O); var vals = []; for (var key in obj) { - if (has(obj, key) && isEnumerable(obj, key)) { + if (has(obj, key) && $isEnumerable(obj, key)) { vals.push(obj[key]); } } diff --git a/package.json b/package.json index 1014050..acba94b 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ ], "dependencies": { "define-properties": "^1.1.3", - "es-abstract": "^1.13.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" },