mirror of
https://github.com/actions/setup-java.git
synced 2025-04-20 09:56:46 +00:00
Fix.
This commit is contained in:
parent
596a6da241
commit
c1a589c5b6
7078 changed files with 1882834 additions and 319 deletions
13
node_modules/object.getownpropertydescriptors/.editorconfig
generated
vendored
Normal file
13
node_modules/object.getownpropertydescriptors/.editorconfig
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab;
|
||||
insert_final_newline = true;
|
||||
quote_type = auto;
|
||||
space_after_anonymous_functions = true;
|
||||
space_after_control_statements = true;
|
||||
spaces_around_operators = true;
|
||||
trim_trailing_whitespace = true;
|
||||
spaces_in_brackets = false;
|
||||
end_of_line = lf;
|
||||
|
10
node_modules/object.getownpropertydescriptors/.eslintrc
generated
vendored
Normal file
10
node_modules/object.getownpropertydescriptors/.eslintrc
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"root": true,
|
||||
|
||||
"extends": "@ljharb",
|
||||
|
||||
"rules": {
|
||||
"id-length": [2, { "min": 1, "max": 30 }],
|
||||
"new-cap": [2, { "capIsNewExceptions": ["IsCallable", "RequireObjectCoercible", "ToObject"] }]
|
||||
}
|
||||
}
|
176
node_modules/object.getownpropertydescriptors/.jscs.json
generated
vendored
Normal file
176
node_modules/object.getownpropertydescriptors/.jscs.json
generated
vendored
Normal file
|
@ -0,0 +1,176 @@
|
|||
{
|
||||
"es3": true,
|
||||
|
||||
"additionalRules": [],
|
||||
|
||||
"requireSemicolons": true,
|
||||
|
||||
"disallowMultipleSpaces": true,
|
||||
|
||||
"disallowIdentifierNames": [],
|
||||
|
||||
"requireCurlyBraces": {
|
||||
"allExcept": [],
|
||||
"keywords": ["if", "else", "for", "while", "do", "try", "catch"]
|
||||
},
|
||||
|
||||
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
|
||||
|
||||
"disallowSpaceAfterKeywords": [],
|
||||
|
||||
"disallowSpaceBeforeComma": true,
|
||||
"disallowSpaceAfterComma": false,
|
||||
"disallowSpaceBeforeSemicolon": true,
|
||||
|
||||
"disallowNodeTypes": [
|
||||
"DebuggerStatement",
|
||||
"ForInStatement",
|
||||
"LabeledStatement",
|
||||
"SwitchCase",
|
||||
"SwitchStatement",
|
||||
"WithStatement"
|
||||
],
|
||||
|
||||
"requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
|
||||
|
||||
"requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
|
||||
"requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
|
||||
"disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
|
||||
"requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
|
||||
"disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
|
||||
|
||||
"requireSpaceBetweenArguments": true,
|
||||
|
||||
"disallowSpacesInsideParentheses": true,
|
||||
|
||||
"disallowSpacesInsideArrayBrackets": true,
|
||||
|
||||
"disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
|
||||
|
||||
"disallowSpaceAfterObjectKeys": true,
|
||||
|
||||
"requireCommaBeforeLineBreak": true,
|
||||
|
||||
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
|
||||
"requireSpaceAfterPrefixUnaryOperators": [],
|
||||
|
||||
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
|
||||
"requireSpaceBeforePostfixUnaryOperators": [],
|
||||
|
||||
"disallowSpaceBeforeBinaryOperators": [],
|
||||
"requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
|
||||
|
||||
"requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
|
||||
"disallowSpaceAfterBinaryOperators": [],
|
||||
|
||||
"disallowImplicitTypeConversion": ["binary", "string"],
|
||||
|
||||
"disallowKeywords": ["with", "eval"],
|
||||
|
||||
"requireKeywordsOnNewLine": [],
|
||||
"disallowKeywordsOnNewLine": ["else"],
|
||||
|
||||
"requireLineFeedAtFileEnd": true,
|
||||
|
||||
"disallowTrailingWhitespace": true,
|
||||
|
||||
"disallowTrailingComma": true,
|
||||
|
||||
"excludeFiles": ["node_modules/**", "vendor/**"],
|
||||
|
||||
"disallowMultipleLineStrings": true,
|
||||
|
||||
"requireDotNotation": { "allExcept": ["keywords"] },
|
||||
|
||||
"requireParenthesesAroundIIFE": true,
|
||||
|
||||
"validateLineBreaks": "LF",
|
||||
|
||||
"validateQuoteMarks": {
|
||||
"escape": true,
|
||||
"mark": "'"
|
||||
},
|
||||
|
||||
"disallowOperatorBeforeLineBreak": [],
|
||||
|
||||
"requireSpaceBeforeKeywords": [
|
||||
"do",
|
||||
"for",
|
||||
"if",
|
||||
"else",
|
||||
"switch",
|
||||
"case",
|
||||
"try",
|
||||
"catch",
|
||||
"finally",
|
||||
"while",
|
||||
"with",
|
||||
"return"
|
||||
],
|
||||
|
||||
"validateAlignedFunctionParameters": {
|
||||
"lineBreakAfterOpeningBraces": true,
|
||||
"lineBreakBeforeClosingBraces": true
|
||||
},
|
||||
|
||||
"requirePaddingNewLinesBeforeExport": true,
|
||||
|
||||
"validateNewlineAfterArrayElements": {
|
||||
"maximum": 1
|
||||
},
|
||||
|
||||
"requirePaddingNewLinesAfterUseStrict": true,
|
||||
|
||||
"disallowArrowFunctions": true,
|
||||
|
||||
"disallowMultiLineTernary": true,
|
||||
|
||||
"validateOrderInObjectKeys": "asc-insensitive",
|
||||
|
||||
"disallowIdenticalDestructuringNames": true,
|
||||
|
||||
"disallowNestedTernaries": { "maxLevel": 1 },
|
||||
|
||||
"requireSpaceAfterComma": { "allExcept": ["trailing"] },
|
||||
"requireAlignedMultilineParams": false,
|
||||
|
||||
"requireSpacesInGenerator": {
|
||||
"afterStar": true
|
||||
},
|
||||
|
||||
"disallowSpacesInGenerator": {
|
||||
"beforeStar": true
|
||||
},
|
||||
|
||||
"disallowVar": false,
|
||||
|
||||
"requireArrayDestructuring": false,
|
||||
|
||||
"requireEnhancedObjectLiterals": false,
|
||||
|
||||
"requireObjectDestructuring": false,
|
||||
|
||||
"requireEarlyReturn": false,
|
||||
|
||||
"requireCapitalizedConstructorsNew": {
|
||||
"allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
|
||||
},
|
||||
|
||||
"requireImportAlphabetized": false,
|
||||
|
||||
"requireSpaceBeforeObjectValues": true,
|
||||
"requireSpaceBeforeDestructuredValues": true,
|
||||
|
||||
"disallowSpacesInsideTemplateStringPlaceholders": true,
|
||||
|
||||
"disallowArrayDestructuringReturn": false,
|
||||
|
||||
"requireNewlineBeforeSingleStatementsInIf": false,
|
||||
|
||||
"disallowUnusedVariables": true,
|
||||
|
||||
"requireSpacesInsideImportedObjectBraces": true,
|
||||
|
||||
"requireUseStrict": true
|
||||
}
|
||||
|
28
node_modules/object.getownpropertydescriptors/.npmignore
generated
vendored
Normal file
28
node_modules/object.getownpropertydescriptors/.npmignore
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directory
|
||||
# Commenting this out is preferred by some people, see
|
||||
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
|
||||
node_modules
|
||||
|
||||
# Users Environment Variables
|
||||
.lock-wscript
|
96
node_modules/object.getownpropertydescriptors/.travis.yml
generated
vendored
Normal file
96
node_modules/object.getownpropertydescriptors/.travis.yml
generated
vendored
Normal file
|
@ -0,0 +1,96 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- "6.2"
|
||||
- "6.1"
|
||||
- "6.0"
|
||||
- "5.12"
|
||||
- "5.11"
|
||||
- "5.10"
|
||||
- "5.9"
|
||||
- "5.8"
|
||||
- "5.7"
|
||||
- "5.6"
|
||||
- "5.5"
|
||||
- "5.4"
|
||||
- "5.3"
|
||||
- "5.2"
|
||||
- "5.1"
|
||||
- "5.0"
|
||||
- "4.4"
|
||||
- "4.3"
|
||||
- "4.2"
|
||||
- "4.1"
|
||||
- "4.0"
|
||||
- "iojs-v3.3"
|
||||
- "iojs-v3.2"
|
||||
- "iojs-v3.1"
|
||||
- "iojs-v3.0"
|
||||
- "iojs-v2.5"
|
||||
- "iojs-v2.4"
|
||||
- "iojs-v2.3"
|
||||
- "iojs-v2.2"
|
||||
- "iojs-v2.1"
|
||||
- "iojs-v2.0"
|
||||
- "iojs-v1.8"
|
||||
- "iojs-v1.7"
|
||||
- "iojs-v1.6"
|
||||
- "iojs-v1.5"
|
||||
- "iojs-v1.4"
|
||||
- "iojs-v1.3"
|
||||
- "iojs-v1.2"
|
||||
- "iojs-v1.1"
|
||||
- "iojs-v1.0"
|
||||
- "0.12"
|
||||
- "0.11"
|
||||
- "0.10"
|
||||
- "0.9"
|
||||
- "0.8"
|
||||
- "0.6"
|
||||
- "0.4"
|
||||
before_install:
|
||||
- 'if [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
|
||||
- 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi'
|
||||
script:
|
||||
- 'if [ "${TRAVIS_NODE_VERSION}" != "4.4" ]; then npm run tests-only ; else npm test ; fi'
|
||||
sudo: false
|
||||
matrix:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- node_js: "6.1"
|
||||
- node_js: "6.0"
|
||||
- node_js: "5.11"
|
||||
- node_js: "5.10"
|
||||
- node_js: "5.9"
|
||||
- node_js: "5.8"
|
||||
- node_js: "5.7"
|
||||
- node_js: "5.6"
|
||||
- node_js: "5.5"
|
||||
- node_js: "5.4"
|
||||
- node_js: "5.3"
|
||||
- node_js: "5.2"
|
||||
- node_js: "5.1"
|
||||
- node_js: "5.0"
|
||||
- node_js: "4.3"
|
||||
- node_js: "4.2"
|
||||
- node_js: "4.1"
|
||||
- node_js: "4.0"
|
||||
- node_js: "iojs-v3.2"
|
||||
- node_js: "iojs-v3.1"
|
||||
- node_js: "iojs-v3.0"
|
||||
- node_js: "iojs-v2.4"
|
||||
- node_js: "iojs-v2.3"
|
||||
- node_js: "iojs-v2.2"
|
||||
- node_js: "iojs-v2.1"
|
||||
- node_js: "iojs-v2.0"
|
||||
- node_js: "iojs-v1.7"
|
||||
- node_js: "iojs-v1.6"
|
||||
- node_js: "iojs-v1.5"
|
||||
- node_js: "iojs-v1.4"
|
||||
- node_js: "iojs-v1.3"
|
||||
- node_js: "iojs-v1.2"
|
||||
- node_js: "iojs-v1.1"
|
||||
- node_js: "iojs-v1.0"
|
||||
- node_js: "0.11"
|
||||
- node_js: "0.9"
|
||||
- node_js: "0.6"
|
||||
- node_js: "0.4"
|
51
node_modules/object.getownpropertydescriptors/CHANGELOG.md
generated
vendored
Normal file
51
node_modules/object.getownpropertydescriptors/CHANGELOG.md
generated
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
2.0.3 / 2016-07-26
|
||||
=================
|
||||
* [Fix] Update implementation to not return `undefined` descriptors
|
||||
* [Deps] update `es-abstract`
|
||||
* [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `jscs`, `nsp`, `tape`, `semver`
|
||||
* [Dev Deps] remove unused eccheck script + dep
|
||||
* [Tests] up to `node` `v6.3`, `v5.12`, `v4.4`
|
||||
* [Tests] use pretest/posttest for linting/security
|
||||
* Update to stage 4
|
||||
|
||||
2.0.2 / 2016-01-27
|
||||
=================
|
||||
* [Fix] ensure that `Object.getOwnPropertyDescriptors` does not fail when `Object.prototype` has a poisoned setter (#1, #2)
|
||||
|
||||
2.0.1 / 2016-01-27
|
||||
=================
|
||||
* [Deps] move `@es-shims/api` to dev deps
|
||||
|
||||
2.0.0 / 2016-01-27
|
||||
=================
|
||||
* [Breaking] implement the es-shims API
|
||||
* [Deps] update `define-properties`, `es-abstract`
|
||||
* [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`
|
||||
* [Tests] fix npm upgrades in older nodes
|
||||
* [Tests] up to `node` `v5.5`
|
||||
* [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
|
||||
|
||||
1.0.4 / 2015-07-20
|
||||
=================
|
||||
* [Tests] Test on `io.js` `v2.4`
|
||||
* [Deps, Dev Deps] Update `define-properties`, `tape`, `eslint`, `semver`
|
||||
|
||||
1.0.3 / 2015-06-28
|
||||
=================
|
||||
* Increase robustness by caching `Array#{concat, reduce}`
|
||||
* [Deps] Update `define_properties`
|
||||
* [Dev Deps] Update `eslint`, `semver`, `nsp`
|
||||
* [Tests] Test up to `io.js` `v2.3`
|
||||
|
||||
1.0.2 / 2015-05-23
|
||||
=================
|
||||
* Update `es-abstract`, `tape`, `eslint`, `jscs`, `semver`, `covert`
|
||||
* Test up to `io.js` `v2.0`
|
||||
|
||||
1.0.1 / 2015-03-20
|
||||
=================
|
||||
* Update `es-abstract`, `editorconfig-tools`, `nsp`, `eslint`, `semver`, `replace`
|
||||
|
||||
1.0.0 / 2015-02-17
|
||||
=================
|
||||
* v1.0.0
|
22
node_modules/object.getownpropertydescriptors/LICENSE
generated
vendored
Normal file
22
node_modules/object.getownpropertydescriptors/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Jordan Harband
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
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.
|
||||
|
61
node_modules/object.getownpropertydescriptors/Makefile
generated
vendored
Normal file
61
node_modules/object.getownpropertydescriptors/Makefile
generated
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Since we rely on paths relative to the makefile location, abort if make isn't being run from there.
|
||||
$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in))
|
||||
|
||||
# The files that need updating when incrementing the version number.
|
||||
VERSIONED_FILES := *.js *.json README*
|
||||
|
||||
|
||||
# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
|
||||
# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
|
||||
# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
|
||||
export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH")
|
||||
UTILS := semver
|
||||
# Make sure that all required utilities can be located.
|
||||
UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS)))
|
||||
|
||||
# Default target (by virtue of being the first non '.'-prefixed in the file).
|
||||
.PHONY: _no-target-specified
|
||||
_no-target-specified:
|
||||
$(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests)
|
||||
|
||||
# Lists all targets defined in this makefile.
|
||||
.PHONY: list
|
||||
list:
|
||||
@$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort
|
||||
|
||||
# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS).
|
||||
.PHONY: test
|
||||
test:
|
||||
@npm test
|
||||
|
||||
.PHONY: _ensure-tag
|
||||
_ensure-tag:
|
||||
ifndef TAG
|
||||
$(error Please invoke with `make TAG=<new-version> release`, where <new-version> is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number)
|
||||
endif
|
||||
|
||||
CHANGELOG_ERROR = $(error No CHANGELOG specified)
|
||||
.PHONY: _ensure-changelog
|
||||
_ensure-changelog:
|
||||
@ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2)
|
||||
|
||||
# Ensures that the git workspace is clean.
|
||||
.PHONY: _ensure-clean
|
||||
_ensure-clean:
|
||||
@[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; }
|
||||
|
||||
# Makes a release; invoke with `make TAG=<versionOrIncrementSpec> release`.
|
||||
.PHONY: release
|
||||
release: _ensure-tag _ensure-changelog _ensure-clean
|
||||
@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
|
||||
new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
|
||||
if printf "$$new_ver" | command grep -q '^[0-9]'; then \
|
||||
semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \
|
||||
semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \
|
||||
else \
|
||||
new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
|
||||
fi; \
|
||||
printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
|
||||
replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \
|
||||
git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \
|
||||
git tag -a -m "v$$new_ver" "v$$new_ver"
|
99
node_modules/object.getownpropertydescriptors/README.md
generated
vendored
Normal file
99
node_modules/object.getownpropertydescriptors/README.md
generated
vendored
Normal file
|
@ -0,0 +1,99 @@
|
|||
#object.getownpropertydescriptors <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
|
||||
|
||||
[![Build Status][travis-svg]][travis-url]
|
||||
[![dependency status][deps-svg]][deps-url]
|
||||
[![dev dependency status][dev-deps-svg]][dev-deps-url]
|
||||
[![License][license-image]][license-url]
|
||||
[![Downloads][downloads-image]][downloads-url]
|
||||
|
||||
[![npm badge][npm-badge-png]][package-url]
|
||||
|
||||
[![browser support][testling-svg]][testling-url]
|
||||
|
||||
An ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.
|
||||
Invoke its "shim" method to shim `Object.getOwnPropertyDescriptors` if it is unavailable, and if `Object.getOwnPropertyDescriptor` is available.
|
||||
|
||||
This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://github.com/tc39/ecma262/pull/582).
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
var getDescriptors = require('object.getownpropertydescriptors');
|
||||
var assert = require('assert');
|
||||
var obj = { normal: Infinity };
|
||||
var enumDescriptor = {
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: true,
|
||||
value: true
|
||||
};
|
||||
var writableDescriptor = {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
value: 42
|
||||
};
|
||||
var symbol = Symbol();
|
||||
var symDescriptor = {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false,
|
||||
value: [symbol]
|
||||
};
|
||||
|
||||
Object.defineProperty(obj, 'enumerable', enumDescriptor);
|
||||
Object.defineProperty(obj, 'writable', writableDescriptor);
|
||||
Object.defineProperty(obj, 'symbol', symDescriptor);
|
||||
|
||||
var descriptors = getDescriptors(obj);
|
||||
|
||||
assert.deepEqual(descriptors, {
|
||||
normal: {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
value: Infinity
|
||||
},
|
||||
enumerable: enumDescriptor,
|
||||
writable: writableDescriptor,
|
||||
symbol: symDescriptor
|
||||
});
|
||||
```
|
||||
|
||||
```js
|
||||
var getDescriptors = require('object.getownpropertydescriptors');
|
||||
var assert = require('assert');
|
||||
/* when Object.getOwnPropertyDescriptors is not present */
|
||||
delete Object.getOwnPropertyDescriptors;
|
||||
var shimmedDescriptors = getDescriptors.shim();
|
||||
assert.equal(shimmedDescriptors, getDescriptors);
|
||||
assert.deepEqual(shimmedDescriptors(obj), getDescriptors(obj));
|
||||
```
|
||||
|
||||
```js
|
||||
var getDescriptors = require('object.getownpropertydescriptors');
|
||||
var assert = require('assert');
|
||||
/* when Object.getOwnPropertyDescriptors is present */
|
||||
var shimmedDescriptors = getDescriptors.shim();
|
||||
assert.notEqual(shimmedDescriptors, getDescriptors);
|
||||
assert.deepEqual(shimmedDescriptors(obj), getDescriptors(obj));
|
||||
```
|
||||
|
||||
## Tests
|
||||
Simply clone the repo, `npm install`, and run `npm test`
|
||||
|
||||
[package-url]: https://npmjs.org/package/object.getownpropertydescriptors
|
||||
[npm-version-svg]: http://versionbadg.es/ljharb/object.getownpropertydescriptors.svg
|
||||
[travis-svg]: https://travis-ci.org/ljharb/object.getownpropertydescriptors.svg
|
||||
[travis-url]: https://travis-ci.org/ljharb/object.getownpropertydescriptors
|
||||
[deps-svg]: https://david-dm.org/ljharb/object.getownpropertydescriptors.svg
|
||||
[deps-url]: https://david-dm.org/ljharb/object.getownpropertydescriptors
|
||||
[dev-deps-svg]: https://david-dm.org/ljharb/object.getownpropertydescriptors/dev-status.svg
|
||||
[dev-deps-url]: https://david-dm.org/ljharb/object.getownpropertydescriptors#info=devDependencies
|
||||
[testling-svg]: https://ci.testling.com/ljharb/object.getownpropertydescriptors.png
|
||||
[testling-url]: https://ci.testling.com/ljharb/object.getownpropertydescriptors
|
||||
[npm-badge-png]: https://nodei.co/npm/object.getownpropertydescriptors.png?downloads=true&stars=true
|
||||
[license-image]: http://img.shields.io/npm/l/object.getownpropertydescriptors.svg
|
||||
[license-url]: LICENSE
|
||||
[downloads-image]: http://img.shields.io/npm/dm/object.getownpropertydescriptors.svg
|
||||
[downloads-url]: http://npm-stat.com/charts.html?package=object.getownpropertydescriptors
|
44
node_modules/object.getownpropertydescriptors/implementation.js
generated
vendored
Normal file
44
node_modules/object.getownpropertydescriptors/implementation.js
generated
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
'use strict';
|
||||
|
||||
var ES = require('es-abstract/es7');
|
||||
|
||||
var defineProperty = Object.defineProperty;
|
||||
var getDescriptor = Object.getOwnPropertyDescriptor;
|
||||
var getOwnNames = Object.getOwnPropertyNames;
|
||||
var getSymbols = Object.getOwnPropertySymbols;
|
||||
var concat = Function.call.bind(Array.prototype.concat);
|
||||
var reduce = Function.call.bind(Array.prototype.reduce);
|
||||
var getAll = getSymbols ? function (obj) {
|
||||
return concat(getOwnNames(obj), getSymbols(obj));
|
||||
} : getOwnNames;
|
||||
|
||||
var isES5 = ES.IsCallable(getDescriptor) && ES.IsCallable(getOwnNames);
|
||||
|
||||
var safePut = function put(obj, prop, val) { // eslint-disable-line max-params
|
||||
if (defineProperty && prop in obj) {
|
||||
defineProperty(obj, prop, {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
value: val,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[prop] = val;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = function getOwnPropertyDescriptors(value) {
|
||||
ES.RequireObjectCoercible(value);
|
||||
if (!isES5) {
|
||||
throw new TypeError('getOwnPropertyDescriptors requires Object.getOwnPropertyDescriptor');
|
||||
}
|
||||
|
||||
var O = ES.ToObject(value);
|
||||
return reduce(getAll(O), function (acc, key) {
|
||||
var descriptor = getDescriptor(O, key);
|
||||
if (typeof descriptor !== 'undefined') {
|
||||
safePut(acc, key, descriptor);
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
};
|
15
node_modules/object.getownpropertydescriptors/index.js
generated
vendored
Normal file
15
node_modules/object.getownpropertydescriptors/index.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
'use strict';
|
||||
|
||||
var define = require('define-properties');
|
||||
|
||||
var implementation = require('./implementation');
|
||||
var getPolyfill = require('./polyfill');
|
||||
var shim = require('./shim');
|
||||
|
||||
define(implementation, {
|
||||
getPolyfill: getPolyfill,
|
||||
implementation: implementation,
|
||||
shim: shim
|
||||
});
|
||||
|
||||
module.exports = implementation;
|
107
node_modules/object.getownpropertydescriptors/package.json
generated
vendored
Normal file
107
node_modules/object.getownpropertydescriptors/package.json
generated
vendored
Normal file
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
"_from": "object.getownpropertydescriptors@^2.0.3",
|
||||
"_id": "object.getownpropertydescriptors@2.0.3",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
|
||||
"_location": "/object.getownpropertydescriptors",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "object.getownpropertydescriptors@^2.0.3",
|
||||
"name": "object.getownpropertydescriptors",
|
||||
"escapedName": "object.getownpropertydescriptors",
|
||||
"rawSpec": "^2.0.3",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^2.0.3"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/util.promisify"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
|
||||
"_shasum": "8758c846f5b407adab0f236e0986f14b051caa16",
|
||||
"_spec": "object.getownpropertydescriptors@^2.0.3",
|
||||
"_where": "E:\\github\\setup-java\\node_modules\\util.promisify",
|
||||
"author": {
|
||||
"name": "Jordan Harband"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ljharb/object.getownpropertydescriptors/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"define-properties": "^1.1.2",
|
||||
"es-abstract": "^1.5.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.",
|
||||
"devDependencies": {
|
||||
"@es-shims/api": "^1.2.0",
|
||||
"@ljharb/eslint-config": "^6.0.0",
|
||||
"covert": "^1.1.0",
|
||||
"eslint": "^3.1.1",
|
||||
"jscs": "^3.0.7",
|
||||
"nsp": "^2.6.1",
|
||||
"replace": "^0.3.0",
|
||||
"semver": "^5.3.0",
|
||||
"tape": "^4.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
},
|
||||
"homepage": "https://github.com/ljharb/object.getownpropertydescriptors#readme",
|
||||
"keywords": [
|
||||
"Object.getOwnPropertyDescriptors",
|
||||
"descriptor",
|
||||
"property descriptor",
|
||||
"ES8",
|
||||
"ES2017",
|
||||
"shim",
|
||||
"polyfill",
|
||||
"getOwnPropertyDescriptor",
|
||||
"es-shim API"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "object.getownpropertydescriptors",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/ljharb/object.getownpropertydescriptors.git"
|
||||
},
|
||||
"scripts": {
|
||||
"coverage": "covert test/*.js",
|
||||
"coverage:quiet": "covert test/*.js --quiet",
|
||||
"eslint": "eslint test/*.js *.js",
|
||||
"jscs": "jscs test/*.js *.js",
|
||||
"lint": "npm run --silent jscs && npm run --silent eslint",
|
||||
"posttest": "npm run --silent security",
|
||||
"pretest": "npm run --silent lint && es-shim-api",
|
||||
"security": "nsp check",
|
||||
"test": "npm run --silent tests-only",
|
||||
"test:module": "node test/index.js",
|
||||
"test:shimmed": "node test/shimmed.js",
|
||||
"tests-only": "npm run --silent test:shimmed && npm run --silent test:module"
|
||||
},
|
||||
"testling": {
|
||||
"files": [
|
||||
"test/index.js",
|
||||
"test/shimmed.js"
|
||||
],
|
||||
"browsers": [
|
||||
"iexplore/9.0..latest",
|
||||
"firefox/4.0..6.0",
|
||||
"firefox/15.0..latest",
|
||||
"firefox/nightly",
|
||||
"chrome/5.0..10.0",
|
||||
"chrome/20.0..latest",
|
||||
"chrome/canary",
|
||||
"opera/12.0..latest",
|
||||
"opera/next",
|
||||
"safari/5.0..latest",
|
||||
"ipad/6.0..latest",
|
||||
"iphone/6.0..latest",
|
||||
"android-browser/4.2"
|
||||
]
|
||||
},
|
||||
"version": "2.0.3"
|
||||
}
|
7
node_modules/object.getownpropertydescriptors/polyfill.js
generated
vendored
Normal file
7
node_modules/object.getownpropertydescriptors/polyfill.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
var implementation = require('./implementation');
|
||||
|
||||
module.exports = function getPolyfill() {
|
||||
return typeof Object.getOwnPropertyDescriptors === 'function' ? Object.getOwnPropertyDescriptors : implementation;
|
||||
};
|
14
node_modules/object.getownpropertydescriptors/shim.js
generated
vendored
Normal file
14
node_modules/object.getownpropertydescriptors/shim.js
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
'use strict';
|
||||
|
||||
var getPolyfill = require('./polyfill');
|
||||
var define = require('define-properties');
|
||||
|
||||
module.exports = function shimGetOwnPropertyDescriptors() {
|
||||
var polyfill = getPolyfill();
|
||||
define(
|
||||
Object,
|
||||
{ getOwnPropertyDescriptors: polyfill },
|
||||
{ getOwnPropertyDescriptors: function () { return Object.getOwnPropertyDescriptors !== polyfill; } }
|
||||
);
|
||||
return polyfill;
|
||||
};
|
8
node_modules/object.getownpropertydescriptors/test/.eslintrc
generated
vendored
Normal file
8
node_modules/object.getownpropertydescriptors/test/.eslintrc
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"rules": {
|
||||
"max-nested-callbacks": [2, 3],
|
||||
"max-statements": [2, 15],
|
||||
"max-statements-per-line": [2, { "max": 2 }],
|
||||
"no-invalid-this": [1]
|
||||
}
|
||||
}
|
17
node_modules/object.getownpropertydescriptors/test/index.js
generated
vendored
Normal file
17
node_modules/object.getownpropertydescriptors/test/index.js
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
'use strict';
|
||||
|
||||
var getDescriptors = require('../');
|
||||
var test = require('tape');
|
||||
var runTests = require('./tests');
|
||||
|
||||
test('as a function', function (t) {
|
||||
t.test('bad object/this value', function (st) {
|
||||
st.throws(function () { return getDescriptors(undefined); }, TypeError, 'undefined is not an object');
|
||||
st.throws(function () { return getDescriptors(null); }, TypeError, 'null is not an object');
|
||||
st.end();
|
||||
});
|
||||
|
||||
runTests(getDescriptors, t);
|
||||
|
||||
t.end();
|
||||
});
|
35
node_modules/object.getownpropertydescriptors/test/shimmed.js
generated
vendored
Normal file
35
node_modules/object.getownpropertydescriptors/test/shimmed.js
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
'use strict';
|
||||
|
||||
var getDescriptors = require('../');
|
||||
getDescriptors.shim();
|
||||
|
||||
var test = require('tape');
|
||||
var defineProperties = require('define-properties');
|
||||
var runTests = require('./tests');
|
||||
var isEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
var functionsHaveNames = function f() {}.name === 'f';
|
||||
|
||||
test('shimmed', function (t) {
|
||||
t.equal(Object.getOwnPropertyDescriptors.length, 1, 'Object.getOwnPropertyDescriptors has a length of 1');
|
||||
t.test('Function name', { skip: !functionsHaveNames }, function (st) {
|
||||
st.equal(Object.getOwnPropertyDescriptors.name, 'getOwnPropertyDescriptors', 'Object.getOwnPropertyDescriptors has name "getOwnPropertyDescriptors"');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
|
||||
et.equal(false, isEnumerable.call(Object, 'getOwnPropertyDescriptors'), 'Object.getOwnPropertyDescriptors is not enumerable');
|
||||
et.end();
|
||||
});
|
||||
|
||||
var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
|
||||
|
||||
t.test('bad object/this value', { skip: !supportsStrictMode }, function (st) {
|
||||
st.throws(function () { return getDescriptors(undefined, 'a'); }, TypeError, 'undefined is not an object');
|
||||
st.throws(function () { return getDescriptors(null, 'a'); }, TypeError, 'null is not an object');
|
||||
st.end();
|
||||
});
|
||||
|
||||
runTests(Object.getOwnPropertyDescriptors, t);
|
||||
|
||||
t.end();
|
||||
});
|
127
node_modules/object.getownpropertydescriptors/test/tests.js
generated
vendored
Normal file
127
node_modules/object.getownpropertydescriptors/test/tests.js
generated
vendored
Normal file
|
@ -0,0 +1,127 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = function (getDescriptors, t) {
|
||||
var enumDescriptor = {
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value: true,
|
||||
writable: false
|
||||
};
|
||||
var writableDescriptor = {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
value: 42,
|
||||
writable: true
|
||||
};
|
||||
|
||||
t.test('works with Object.prototype poisoned setter', { skip: !Object.defineProperty }, function (st) {
|
||||
var key = 'foo';
|
||||
|
||||
var obj = {};
|
||||
obj[key] = 42;
|
||||
|
||||
var expected = {};
|
||||
expected[key] = {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
value: 42,
|
||||
writable: true
|
||||
};
|
||||
|
||||
/* eslint-disable no-extend-native, accessor-pairs */
|
||||
Object.defineProperty(Object.prototype, key, { configurable: true, set: function (v) { throw new Error(v); } });
|
||||
/* eslint-enable no-extend-native, accessor-pairs */
|
||||
|
||||
var hasOwnNamesBug = false;
|
||||
try {
|
||||
Object.getOwnPropertyNames(obj);
|
||||
} catch (e) {
|
||||
// v8 in node 0.6 - 0.12 has a bug :-(
|
||||
hasOwnNamesBug = true;
|
||||
st.comment('SKIP: this engine has a bug with Object.getOwnPropertyNames: it can not handle a throwing setter on Object.prototype.');
|
||||
}
|
||||
|
||||
if (!hasOwnNamesBug) {
|
||||
st.doesNotThrow(function () {
|
||||
var result = getDescriptors(obj);
|
||||
st.deepEqual(result, expected, 'got expected descriptors');
|
||||
});
|
||||
}
|
||||
|
||||
/* eslint-disable no-extend-native */
|
||||
delete Object.prototype[key];
|
||||
/* eslint-enable no-extend-native */
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('gets all expected non-Symbol descriptors', function (st) {
|
||||
var obj = { normal: Infinity };
|
||||
Object.defineProperty(obj, 'enumerable', enumDescriptor);
|
||||
Object.defineProperty(obj, 'writable', writableDescriptor);
|
||||
|
||||
var descriptors = getDescriptors(obj);
|
||||
|
||||
st.deepEqual(descriptors, {
|
||||
enumerable: enumDescriptor,
|
||||
normal: {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
value: Infinity,
|
||||
writable: true
|
||||
},
|
||||
writable: writableDescriptor
|
||||
});
|
||||
st.end();
|
||||
});
|
||||
|
||||
var supportsSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
|
||||
t.test('gets Symbol descriptors too', { skip: !supportsSymbols }, function (st) {
|
||||
var symbol = Symbol();
|
||||
var symDescriptor = {
|
||||
configurable: false,
|
||||
enumerable: true,
|
||||
value: [symbol],
|
||||
writable: true
|
||||
};
|
||||
var obj = { normal: Infinity };
|
||||
Object.defineProperty(obj, 'enumerable', enumDescriptor);
|
||||
Object.defineProperty(obj, 'writable', writableDescriptor);
|
||||
Object.defineProperty(obj, 'symbol', symDescriptor);
|
||||
|
||||
var descriptors = getDescriptors(obj);
|
||||
|
||||
st.deepEqual(descriptors, {
|
||||
enumerable: enumDescriptor,
|
||||
normal: {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
value: Infinity,
|
||||
writable: true
|
||||
},
|
||||
symbol: symDescriptor,
|
||||
writable: writableDescriptor
|
||||
});
|
||||
st.end();
|
||||
});
|
||||
|
||||
/* global Proxy */
|
||||
var supportsProxy = typeof Proxy === 'function';
|
||||
t.test('Proxies that return an undefined descriptor', { skip: !supportsProxy }, function (st) {
|
||||
var obj = { foo: true };
|
||||
var fooDescriptor = Object.getOwnPropertyDescriptor(obj, 'foo');
|
||||
|
||||
var proxy = new Proxy(obj, {
|
||||
getOwnPropertyDescriptor: function (target, key) {
|
||||
return Object.getOwnPropertyDescriptor(target, key);
|
||||
},
|
||||
ownKeys: function () {
|
||||
return [
|
||||
'foo',
|
||||
'bar'
|
||||
];
|
||||
}
|
||||
});
|
||||
st.deepEqual(getDescriptors(proxy), { foo: fooDescriptor }, 'object has no descriptors');
|
||||
st.end();
|
||||
});
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue