Fixed #1 - Fixed the whatsnew-** script for loading release notes into builds

Added test to ensure that release notes are parsed properly
Updated to latest dependencies to fix security vulnerability
Updated GH Actions Workflow to run test before updating tag
Updated README.md to reflect proper whatsnew documentation.
This commit is contained in:
Drew Heavner
2020-01-30 11:14:51 -05:00
parent b6496ac4e3
commit bdde081050
2660 changed files with 251487 additions and 213182 deletions

1
node_modules/es-abstract/.eslintignore generated vendored Normal file
View File

@@ -0,0 +1 @@
coverage

55
node_modules/es-abstract/.eslintrc generated vendored
View File

@@ -8,21 +8,68 @@
},
"rules": {
"arrow-parens": [2, "always"],
"array-bracket-newline": 0,
"array-element-newline": 0,
"complexity": 0,
"eqeqeq": [2, "allow-null"],
"func-name-matching": 0,
"id-length": [2, { "min": 1, "max": 30 }],
"max-lines": [2, 800],
"id-length": [2, { "min": 1, "max": 40 }],
"max-params": [2, 4],
"max-statements": [2, 24],
"max-statements-per-line": [2, { "max": 2 }],
"multiline-comment-style": 1,
"multiline-comment-style": 0,
"no-magic-numbers": 0,
"new-cap": 0,
"no-extra-parens": 1,
"operator-linebreak": [2, "before"],
"sort-keys": 0,
}
},
"overrides": [
{
"files": "./*/{Date,Month}FromTime.js",
"rules": {
"max-statements": [2, 30],
},
},
{
"files": "operations/*",
"rules": {
"max-lines": 0,
},
},
{
"files": "operations/*.js",
"parserOptions": {
"ecmaVersion": 2018,
},
"rules": {
"no-console": 0,
"no-multi-str": 0,
},
},
{
"files": "operations/getOps.js",
"rules": {
"no-console": 0,
"no-process-exit": 0,
},
},
{
"files": "test/**",
"rules": {
"id-length": 0,
"max-lines": 0,
"max-lines-per-function": 0,
"max-statements-per-line": [2, { "max": 3 }],
"max-nested-callbacks": [2, 4],
"max-statements": 0,
"no-implicit-coercion": 0,
"no-invalid-this": 1,
"object-curly-newline": 0,
"prefer-regex-literals": 0,
},
},
],
}

472
node_modules/es-abstract/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1,472 @@
2015/AbstractRelationalComparison.js spackled
2015/DateFromTime.js spackled
2015/Day.js spackled
2015/DayFromYear.js spackled
2015/DayWithinYear.js spackled
2015/DaysInYear.js spackled
2015/HourFromTime.js spackled
2015/InLeapYear.js spackled
2015/IsCallable.js spackled
2015/IsPropertyDescriptor.js spackled
2015/MakeDate.js spackled
2015/MakeDay.js spackled
2015/MakeTime.js spackled
2015/MinFromTime.js spackled
2015/MonthFromTime.js spackled
2015/SameValue.js spackled
2015/SecFromTime.js spackled
2015/StrictEqualityComparison.js spackled
2015/TimeClip.js spackled
2015/TimeFromYear.js spackled
2015/TimeWithinDay.js spackled
2015/ToBoolean.js spackled
2015/ToInt32.js spackled
2015/ToPropertyDescriptor.js spackled
2015/ToUint16.js spackled
2015/ToUint32.js spackled
2015/WeekDay.js spackled
2015/YearFromTime.js spackled
2015/modulo.js spackled
2015/msFromTime.js spackled
2016/AbstractEqualityComparison.js spackled
2016/AbstractRelationalComparison.js spackled
2016/AdvanceStringIndex.js spackled
2016/ArrayCreate.js spackled
2016/ArraySetLength.js spackled
2016/ArraySpeciesCreate.js spackled
2016/Call.js spackled
2016/CanonicalNumericIndexString.js spackled
2016/CompletePropertyDescriptor.js spackled
2016/CreateDataProperty.js spackled
2016/CreateDataPropertyOrThrow.js spackled
2016/CreateHTML.js spackled
2016/CreateIterResultObject.js spackled
2016/CreateListFromArrayLike.js spackled
2016/CreateMethodProperty.js spackled
2016/DateFromTime.js spackled
2016/Day.js spackled
2016/DayFromYear.js spackled
2016/DayWithinYear.js spackled
2016/DaysInYear.js spackled
2016/DefinePropertyOrThrow.js spackled
2016/DeletePropertyOrThrow.js spackled
2016/EnumerableOwnNames.js spackled
2016/FromPropertyDescriptor.js spackled
2016/Get.js spackled
2016/GetIterator.js spackled
2016/GetMethod.js spackled
2016/GetOwnPropertyKeys.js spackled
2016/GetPrototypeFromConstructor.js spackled
2016/GetSubstitution.js spackled
2016/GetV.js spackled
2016/HasOwnProperty.js spackled
2016/HasProperty.js spackled
2016/HourFromTime.js spackled
2016/InLeapYear.js spackled
2016/InstanceofOperator.js spackled
2016/Invoke.js spackled
2016/IsAccessorDescriptor.js spackled
2016/IsArray.js spackled
2016/IsCallable.js spackled
2016/IsConcatSpreadable.js spackled
2016/IsConstructor.js spackled
2016/IsDataDescriptor.js spackled
2016/IsExtensible.js spackled
2016/IsGenericDescriptor.js spackled
2016/IsInteger.js spackled
2016/IsPromise.js spackled
2016/IsPropertyDescriptor.js spackled
2016/IsPropertyKey.js spackled
2016/IsRegExp.js spackled
2016/IteratorClose.js spackled
2016/IteratorComplete.js spackled
2016/IteratorNext.js spackled
2016/IteratorStep.js spackled
2016/IteratorValue.js spackled
2016/MakeDate.js spackled
2016/MakeDay.js spackled
2016/MakeTime.js spackled
2016/MinFromTime.js spackled
2016/MonthFromTime.js spackled
2016/ObjectCreate.js spackled
2016/OrdinaryDefineOwnProperty.js spackled
2016/OrdinaryGetOwnProperty.js spackled
2016/OrdinaryHasInstance.js spackled
2016/OrdinaryHasProperty.js spackled
2016/RegExpExec.js spackled
2016/RequireObjectCoercible.js spackled
2016/SameValue.js spackled
2016/SameValueZero.js spackled
2016/SecFromTime.js spackled
2016/Set.js spackled
2016/SetFunctionName.js spackled
2016/SetIntegrityLevel.js spackled
2016/SpeciesConstructor.js spackled
2016/StrictEqualityComparison.js spackled
2016/SymbolDescriptiveString.js spackled
2016/TestIntegrityLevel.js spackled
2016/TimeClip.js spackled
2016/TimeFromYear.js spackled
2016/TimeWithinDay.js spackled
2016/ToBoolean.js spackled
2016/ToDateString.js spackled
2016/ToInt16.js spackled
2016/ToInt32.js spackled
2016/ToInt8.js spackled
2016/ToInteger.js spackled
2016/ToLength.js spackled
2016/ToNumber.js spackled
2016/ToObject.js spackled
2016/ToPrimitive.js spackled
2016/ToPropertyDescriptor.js spackled
2016/ToPropertyKey.js spackled
2016/ToString.js spackled
2016/ToUint16.js spackled
2016/ToUint32.js spackled
2016/ToUint8.js spackled
2016/ToUint8Clamp.js spackled
2016/Type.js spackled
2016/ValidateAndApplyPropertyDescriptor.js spackled
2016/WeekDay.js spackled
2016/YearFromTime.js spackled
2016/modulo.js spackled
2016/msFromTime.js spackled
2016/thisBooleanValue.js spackled
2016/thisNumberValue.js spackled
2016/thisStringValue.js spackled
2016/thisTimeValue.js spackled
2017/AbstractEqualityComparison.js spackled
2017/AbstractRelationalComparison.js spackled
2017/AdvanceStringIndex.js spackled
2017/ArrayCreate.js spackled
2017/ArraySetLength.js spackled
2017/ArraySpeciesCreate.js spackled
2017/Call.js spackled
2017/CanonicalNumericIndexString.js spackled
2017/CompletePropertyDescriptor.js spackled
2017/CreateDataProperty.js spackled
2017/CreateDataPropertyOrThrow.js spackled
2017/CreateHTML.js spackled
2017/CreateIterResultObject.js spackled
2017/CreateListFromArrayLike.js spackled
2017/CreateMethodProperty.js spackled
2017/DateFromTime.js spackled
2017/Day.js spackled
2017/DayFromYear.js spackled
2017/DayWithinYear.js spackled
2017/DaysInYear.js spackled
2017/DefinePropertyOrThrow.js spackled
2017/DeletePropertyOrThrow.js spackled
2017/FromPropertyDescriptor.js spackled
2017/Get.js spackled
2017/GetIterator.js spackled
2017/GetMethod.js spackled
2017/GetOwnPropertyKeys.js spackled
2017/GetPrototypeFromConstructor.js spackled
2017/GetSubstitution.js spackled
2017/GetV.js spackled
2017/HasOwnProperty.js spackled
2017/HasProperty.js spackled
2017/HourFromTime.js spackled
2017/InLeapYear.js spackled
2017/InstanceofOperator.js spackled
2017/Invoke.js spackled
2017/IsAccessorDescriptor.js spackled
2017/IsArray.js spackled
2017/IsCallable.js spackled
2017/IsConcatSpreadable.js spackled
2017/IsConstructor.js spackled
2017/IsDataDescriptor.js spackled
2017/IsExtensible.js spackled
2017/IsGenericDescriptor.js spackled
2017/IsInteger.js spackled
2017/IsPromise.js spackled
2017/IsPropertyDescriptor.js spackled
2017/IsPropertyKey.js spackled
2017/IsRegExp.js spackled
2017/IteratorClose.js spackled
2017/IteratorComplete.js spackled
2017/IteratorNext.js spackled
2017/IteratorStep.js spackled
2017/IteratorValue.js spackled
2017/MakeDate.js spackled
2017/MakeDay.js spackled
2017/MakeTime.js spackled
2017/MinFromTime.js spackled
2017/MonthFromTime.js spackled
2017/ObjectCreate.js spackled
2017/OrdinaryDefineOwnProperty.js spackled
2017/OrdinaryGetOwnProperty.js spackled
2017/OrdinaryGetPrototypeOf.js spackled
2017/OrdinaryHasInstance.js spackled
2017/OrdinaryHasProperty.js spackled
2017/OrdinarySetPrototypeOf.js spackled
2017/RegExpExec.js spackled
2017/RequireObjectCoercible.js spackled
2017/SameValue.js spackled
2017/SameValueNonNumber.js spackled
2017/SameValueZero.js spackled
2017/SecFromTime.js spackled
2017/Set.js spackled
2017/SetFunctionName.js spackled
2017/SetIntegrityLevel.js spackled
2017/SpeciesConstructor.js spackled
2017/StrictEqualityComparison.js spackled
2017/SymbolDescriptiveString.js spackled
2017/TestIntegrityLevel.js spackled
2017/TimeClip.js spackled
2017/TimeFromYear.js spackled
2017/TimeWithinDay.js spackled
2017/ToBoolean.js spackled
2017/ToDateString.js spackled
2017/ToInt16.js spackled
2017/ToInt32.js spackled
2017/ToInt8.js spackled
2017/ToInteger.js spackled
2017/ToLength.js spackled
2017/ToNumber.js spackled
2017/ToObject.js spackled
2017/ToPrimitive.js spackled
2017/ToPropertyDescriptor.js spackled
2017/ToPropertyKey.js spackled
2017/ToString.js spackled
2017/ToUint16.js spackled
2017/ToUint32.js spackled
2017/ToUint8.js spackled
2017/ToUint8Clamp.js spackled
2017/Type.js spackled
2017/ValidateAndApplyPropertyDescriptor.js spackled
2017/WeekDay.js spackled
2017/YearFromTime.js spackled
2017/modulo.js spackled
2017/msFromTime.js spackled
2017/thisBooleanValue.js spackled
2017/thisNumberValue.js spackled
2017/thisStringValue.js spackled
2017/thisTimeValue.js spackled
2018/AbstractEqualityComparison.js spackled
2018/AbstractRelationalComparison.js spackled
2018/AdvanceStringIndex.js spackled
2018/ArrayCreate.js spackled
2018/ArraySetLength.js spackled
2018/ArraySpeciesCreate.js spackled
2018/Call.js spackled
2018/CanonicalNumericIndexString.js spackled
2018/CompletePropertyDescriptor.js spackled
2018/CreateDataProperty.js spackled
2018/CreateDataPropertyOrThrow.js spackled
2018/CreateHTML.js spackled
2018/CreateIterResultObject.js spackled
2018/CreateListFromArrayLike.js spackled
2018/CreateMethodProperty.js spackled
2018/DateFromTime.js spackled
2018/Day.js spackled
2018/DayFromYear.js spackled
2018/DayWithinYear.js spackled
2018/DaysInYear.js spackled
2018/DefinePropertyOrThrow.js spackled
2018/DeletePropertyOrThrow.js spackled
2018/FromPropertyDescriptor.js spackled
2018/Get.js spackled
2018/GetIterator.js spackled
2018/GetMethod.js spackled
2018/GetOwnPropertyKeys.js spackled
2018/GetPrototypeFromConstructor.js spackled
2018/GetV.js spackled
2018/HasOwnProperty.js spackled
2018/HasProperty.js spackled
2018/HourFromTime.js spackled
2018/InLeapYear.js spackled
2018/InstanceofOperator.js spackled
2018/Invoke.js spackled
2018/IsAccessorDescriptor.js spackled
2018/IsArray.js spackled
2018/IsCallable.js spackled
2018/IsConcatSpreadable.js spackled
2018/IsConstructor.js spackled
2018/IsDataDescriptor.js spackled
2018/IsExtensible.js spackled
2018/IsGenericDescriptor.js spackled
2018/IsInteger.js spackled
2018/IsPromise.js spackled
2018/IsPropertyKey.js spackled
2018/IsRegExp.js spackled
2018/IterableToList.js spackled
2018/IteratorClose.js spackled
2018/IteratorComplete.js spackled
2018/IteratorNext.js spackled
2018/IteratorStep.js spackled
2018/IteratorValue.js spackled
2018/MakeDate.js spackled
2018/MakeDay.js spackled
2018/MakeTime.js spackled
2018/MinFromTime.js spackled
2018/MonthFromTime.js spackled
2018/ObjectCreate.js spackled
2018/OrdinaryDefineOwnProperty.js spackled
2018/OrdinaryGetOwnProperty.js spackled
2018/OrdinaryGetPrototypeOf.js spackled
2018/OrdinaryHasInstance.js spackled
2018/OrdinaryHasProperty.js spackled
2018/OrdinarySetPrototypeOf.js spackled
2018/RegExpExec.js spackled
2018/RequireObjectCoercible.js spackled
2018/SameValue.js spackled
2018/SameValueNonNumber.js spackled
2018/SameValueZero.js spackled
2018/SecFromTime.js spackled
2018/Set.js spackled
2018/SetFunctionName.js spackled
2018/SetIntegrityLevel.js spackled
2018/SpeciesConstructor.js spackled
2018/StrictEqualityComparison.js spackled
2018/SymbolDescriptiveString.js spackled
2018/TestIntegrityLevel.js spackled
2018/TimeClip.js spackled
2018/TimeFromYear.js spackled
2018/TimeWithinDay.js spackled
2018/ToBoolean.js spackled
2018/ToDateString.js spackled
2018/ToIndex.js spackled
2018/ToInt16.js spackled
2018/ToInt32.js spackled
2018/ToInt8.js spackled
2018/ToInteger.js spackled
2018/ToLength.js spackled
2018/ToNumber.js spackled
2018/ToObject.js spackled
2018/ToPrimitive.js spackled
2018/ToPropertyDescriptor.js spackled
2018/ToPropertyKey.js spackled
2018/ToString.js spackled
2018/ToUint16.js spackled
2018/ToUint32.js spackled
2018/ToUint8.js spackled
2018/ToUint8Clamp.js spackled
2018/Type.js spackled
2018/ValidateAndApplyPropertyDescriptor.js spackled
2018/WeekDay.js spackled
2018/YearFromTime.js spackled
2018/modulo.js spackled
2018/msFromTime.js spackled
2018/thisBooleanValue.js spackled
2018/thisNumberValue.js spackled
2018/thisStringValue.js spackled
2018/thisTimeValue.js spackled
2019/AbstractEqualityComparison.js spackled
2019/AbstractRelationalComparison.js spackled
2019/AdvanceStringIndex.js spackled
2019/ArrayCreate.js spackled
2019/ArraySetLength.js spackled
2019/ArraySpeciesCreate.js spackled
2019/Call.js spackled
2019/CanonicalNumericIndexString.js spackled
2019/CompletePropertyDescriptor.js spackled
2019/CopyDataProperties.js spackled
2019/CreateDataProperty.js spackled
2019/CreateDataPropertyOrThrow.js spackled
2019/CreateHTML.js spackled
2019/CreateIterResultObject.js spackled
2019/CreateListFromArrayLike.js spackled
2019/CreateMethodProperty.js spackled
2019/DateFromTime.js spackled
2019/DateString.js spackled
2019/Day.js spackled
2019/DayFromYear.js spackled
2019/DayWithinYear.js spackled
2019/DaysInYear.js spackled
2019/DefinePropertyOrThrow.js spackled
2019/DeletePropertyOrThrow.js spackled
2019/EnumerableOwnPropertyNames.js spackled
2019/FromPropertyDescriptor.js spackled
2019/Get.js spackled
2019/GetIterator.js spackled
2019/GetMethod.js spackled
2019/GetOwnPropertyKeys.js spackled
2019/GetPrototypeFromConstructor.js spackled
2019/GetSubstitution.js spackled
2019/GetV.js spackled
2019/HasOwnProperty.js spackled
2019/HasProperty.js spackled
2019/HourFromTime.js spackled
2019/InLeapYear.js spackled
2019/InstanceofOperator.js spackled
2019/Invoke.js spackled
2019/IsAccessorDescriptor.js spackled
2019/IsArray.js spackled
2019/IsCallable.js spackled
2019/IsConcatSpreadable.js spackled
2019/IsConstructor.js spackled
2019/IsDataDescriptor.js spackled
2019/IsExtensible.js spackled
2019/IsGenericDescriptor.js spackled
2019/IsInteger.js spackled
2019/IsPromise.js spackled
2019/IsPropertyKey.js spackled
2019/IsRegExp.js spackled
2019/IsStringPrefix.js spackled
2019/IterableToList.js spackled
2019/IteratorClose.js spackled
2019/IteratorComplete.js spackled
2019/IteratorNext.js spackled
2019/IteratorStep.js spackled
2019/IteratorValue.js spackled
2019/MakeDate.js spackled
2019/MakeDay.js spackled
2019/MakeTime.js spackled
2019/MinFromTime.js spackled
2019/MonthFromTime.js spackled
2019/NumberToString.js spackled
2019/ObjectCreate.js spackled
2019/OrdinaryDefineOwnProperty.js spackled
2019/OrdinaryGetOwnProperty.js spackled
2019/OrdinaryGetPrototypeOf.js spackled
2019/OrdinaryHasInstance.js spackled
2019/OrdinaryHasProperty.js spackled
2019/OrdinarySetPrototypeOf.js spackled
2019/PromiseResolve.js spackled
2019/RegExpExec.js spackled
2019/RequireObjectCoercible.js spackled
2019/SameValue.js spackled
2019/SameValueNonNumber.js spackled
2019/SameValueZero.js spackled
2019/SecFromTime.js spackled
2019/Set.js spackled
2019/SetFunctionName.js spackled
2019/SetIntegrityLevel.js spackled
2019/SpeciesConstructor.js spackled
2019/StrictEqualityComparison.js spackled
2019/SymbolDescriptiveString.js spackled
2019/TestIntegrityLevel.js spackled
2019/TimeClip.js spackled
2019/TimeFromYear.js spackled
2019/TimeString.js spackled
2019/TimeWithinDay.js spackled
2019/ToBoolean.js spackled
2019/ToDateString.js spackled
2019/ToIndex.js spackled
2019/ToInt16.js spackled
2019/ToInt32.js spackled
2019/ToInt8.js spackled
2019/ToInteger.js spackled
2019/ToLength.js spackled
2019/ToNumber.js spackled
2019/ToObject.js spackled
2019/ToPrimitive.js spackled
2019/ToPropertyDescriptor.js spackled
2019/ToPropertyKey.js spackled
2019/ToString.js spackled
2019/ToUint16.js spackled
2019/ToUint32.js spackled
2019/ToUint8.js spackled
2019/ToUint8Clamp.js spackled
2019/Type.js spackled
2019/ValidateAndApplyPropertyDescriptor.js spackled
2019/WeekDay.js spackled
2019/YearFromTime.js spackled
2019/modulo.js spackled
2019/msFromTime.js spackled
2019/thisBooleanValue.js spackled
2019/thisNumberValue.js spackled
2019/thisStringValue.js spackled
2019/thisSymbolValue.js spackled

12
node_modules/es-abstract/.github/FUNDING.yml generated vendored Normal file
View File

@@ -0,0 +1,12 @@
# These are supported funding model platforms
github: [ljharb]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: npm/es-abstract
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with a single custom sponsorship URL

15
node_modules/es-abstract/.github/workflows/rebase.yml generated vendored Normal file
View File

@@ -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 }}

6
node_modules/es-abstract/.nycrc generated vendored
View File

@@ -1,9 +1,9 @@
{
"all": true,
"check-coverage": true,
"check-coverage": false,
"reporter": ["text-summary", "text", "html", "json"],
"lines": 86.99,
"statements": 86.86,
"lines": 86,
"statements": 85.93,
"functions": 82.43,
"branches": 76.06,
"exclude": [

279
node_modules/es-abstract/.travis.yml generated vendored
View File

@@ -1,22 +1,7 @@
version: ~> 1.0
language: node_js
os:
- linux
node_js:
- "11.6"
- "10.15"
- "9.11"
- "8.15"
- "7.10"
- "6.16"
- "5.12"
- "4.9"
- "iojs-v3.3"
- "iojs-v2.5"
- "iojs-v1.8"
- "0.12"
- "0.10"
- "0.8"
- "0.6"
cache:
directories:
- "$HOME/.npm"
@@ -24,260 +9,24 @@ cache:
- "$(nvm_version_path $(nvm_version_remote 0.4))"
- "$(nvm_version_path $(nvm_version_remote 0.6))"
- "$(nvm_version_path $(nvm_version_remote 0.10))"
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;'
import:
- ljharb/travis-ci:node/all.yml
- ljharb/travis-ci:node/pretest.yml
- ljharb/travis-ci:node/posttest.yml
script:
- 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- 'if [ -n "${COVERAGE-}" ]; then npm run coverage && bash <(curl -s https://codecov.io/bash) -f coverage/*.json; fi'
- 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
sudo: false
env:
- TEST=true
matrix:
fast_finish: true
include:
- node_js: "lts/*"
env: PRETEST=true
- node_js: "lts/*"
env: POSTTEST=true
- node_js: "0.8"
env: COVERAGE=true
- node_js: "0.12"
- node_js: "8"
env: COVERAGE=true
- node_js: "4"
env: COVERAGE=true
- node_js: "8"
- node_js: "0.12"
env: COVERAGE=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.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.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.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.4"
env: TEST=true ALLOW_FAILURE=true
allow_failures:
- os: osx
- env: TEST=true ALLOW_FAILURE=true
- node_js: "0.8"
env: COVERAGE=true
exclude:
- node_js: "0.12"
env: TEST=true
- node_js: "0.8"
env: TEST=true

View File

@@ -0,0 +1,37 @@
'use strict';
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison
module.exports = function AbstractEqualityComparison(x, y) {
var xType = Type(x);
var yType = Type(y);
if (xType === yType) {
return x === y; // ES6+ specified this shortcut anyways.
}
if (x == null && y == null) {
return true;
}
if (xType === 'Number' && yType === 'String') {
return AbstractEqualityComparison(x, ToNumber(y));
}
if (xType === 'String' && yType === 'Number') {
return AbstractEqualityComparison(ToNumber(x), y);
}
if (xType === 'Boolean') {
return AbstractEqualityComparison(ToNumber(x), y);
}
if (yType === 'Boolean') {
return AbstractEqualityComparison(x, ToNumber(y));
}
if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') {
return AbstractEqualityComparison(x, ToPrimitive(y));
}
if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) {
return AbstractEqualityComparison(ToPrimitive(x), y);
}
return false;
};

View File

@@ -0,0 +1,66 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Number = GetIntrinsic('%Number%');
var $TypeError = GetIntrinsic('%TypeError%');
var $isNaN = require('../helpers/isNaN');
var $isFinite = require('../helpers/isFinite');
var isPrefixOf = require('../helpers/isPrefixOf');
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5
// eslint-disable-next-line max-statements
module.exports = function AbstractRelationalComparison(x, y, LeftFirst) {
if (Type(LeftFirst) !== 'Boolean') {
throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');
}
var px;
var py;
if (LeftFirst) {
px = ToPrimitive(x, $Number);
py = ToPrimitive(y, $Number);
} else {
py = ToPrimitive(y, $Number);
px = ToPrimitive(x, $Number);
}
var bothStrings = Type(px) === 'String' && Type(py) === 'String';
if (!bothStrings) {
var nx = ToNumber(px);
var ny = ToNumber(py);
if ($isNaN(nx) || $isNaN(ny)) {
return undefined;
}
if ($isFinite(nx) && $isFinite(ny) && nx === ny) {
return false;
}
if (nx === 0 && ny === 0) {
return false;
}
if (nx === Infinity) {
return false;
}
if (ny === Infinity) {
return true;
}
if (ny === -Infinity) {
return false;
}
if (nx === -Infinity) {
return true;
}
return nx < ny; // by now, these are both nonzero, finite, and not equal
}
if (isPrefixOf(py, px)) {
return false;
}
if (isPrefixOf(px, py)) {
return true;
}
return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f
};

45
node_modules/es-abstract/2015/AdvanceStringIndex.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var IsInteger = require('./IsInteger');
var Type = require('./Type');
var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
var $TypeError = GetIntrinsic('%TypeError%');
var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt');
// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex
module.exports = function AdvanceStringIndex(S, index, unicode) {
if (Type(S) !== 'String') {
throw new $TypeError('Assertion failed: `S` must be a String');
}
if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {
throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53');
}
if (Type(unicode) !== 'Boolean') {
throw new $TypeError('Assertion failed: `unicode` must be a Boolean');
}
if (!unicode) {
return index + 1;
}
var length = S.length;
if ((index + 1) >= length) {
return index + 1;
}
var first = $charCodeAt(S, index);
if (first < 0xD800 || first > 0xDBFF) {
return index + 1;
}
var second = $charCodeAt(S, index + 1);
if (second < 0xDC00 || second > 0xDFFF) {
return index + 1;
}
return index + 2;
};

53
node_modules/es-abstract/2015/ArrayCreate.js generated vendored Normal file
View File

@@ -0,0 +1,53 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $ArrayPrototype = GetIntrinsic('%Array.prototype%');
var $RangeError = GetIntrinsic('%RangeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var IsInteger = require('./IsInteger');
var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (
// eslint-disable-next-line no-proto, no-negated-condition
[].__proto__ !== $ArrayPrototype
? null
: function (O, proto) {
O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
return O;
}
);
// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate
module.exports = function ArrayCreate(length) {
if (!IsInteger(length) || length < 0) {
throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0');
}
if (length > MAX_ARRAY_LENGTH) {
throw new $RangeError('length is greater than (2**32 - 1)');
}
var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;
var A = []; // steps 5 - 7, and 9
if (proto !== $ArrayPrototype) { // step 8
if (!$setProto) {
throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]');
}
$setProto(A, proto);
}
if (length !== 0) { // bypasses the need for step 2
A.length = length;
}
/* step 10, the above as a shortcut for the below
OrdinaryDefineOwnProperty(A, 'length', {
'[[Configurable]]': false,
'[[Enumerable]]': false,
'[[Value]]': length,
'[[Writable]]': true
});
*/
return A;
};

85
node_modules/es-abstract/2015/ArraySetLength.js generated vendored Normal file
View File

@@ -0,0 +1,85 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $RangeError = GetIntrinsic('%RangeError%');
var $TypeError = GetIntrinsic('%TypeError%');
var assign = require('object.assign');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var IsArray = require('./IsArray');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
var ToUint32 = require('./ToUint32');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength
// eslint-disable-next-line max-statements, max-lines-per-function
module.exports = function ArraySetLength(A, Desc) {
if (!IsArray(A)) {
throw new $TypeError('Assertion failed: A must be an Array');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!('[[Value]]' in Desc)) {
return OrdinaryDefineOwnProperty(A, 'length', Desc);
}
var newLenDesc = assign({}, Desc);
var newLen = ToUint32(Desc['[[Value]]']);
var numberLen = ToNumber(Desc['[[Value]]']);
if (newLen !== numberLen) {
throw new $RangeError('Invalid array length');
}
newLenDesc['[[Value]]'] = newLen;
var oldLenDesc = OrdinaryGetOwnProperty(A, 'length');
if (!IsDataDescriptor(oldLenDesc)) {
throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`');
}
var oldLen = oldLenDesc['[[Value]]'];
if (newLen >= oldLen) {
return OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
}
if (!oldLenDesc['[[Writable]]']) {
return false;
}
var newWritable;
if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) {
newWritable = true;
} else {
newWritable = false;
newLenDesc['[[Writable]]'] = true;
}
var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
if (!succeeded) {
return false;
}
while (newLen < oldLen) {
oldLen -= 1;
// eslint-disable-next-line no-param-reassign
var deleteSucceeded = delete A[ToString(oldLen)];
if (!deleteSucceeded) {
newLenDesc['[[Value]]'] = oldLen + 1;
if (!newWritable) {
newLenDesc['[[Writable]]'] = false;
OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
return false;
}
}
}
if (!newWritable) {
return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false });
}
return true;
};

46
node_modules/es-abstract/2015/ArraySpeciesCreate.js generated vendored Normal file
View File

@@ -0,0 +1,46 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Array = GetIntrinsic('%Array%');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var Get = require('./Get');
var IsArray = require('./IsArray');
var IsConstructor = require('./IsConstructor');
var IsInteger = require('./IsInteger');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate
module.exports = function ArraySpeciesCreate(originalArray, length) {
if (!IsInteger(length) || length < 0) {
throw new $TypeError('Assertion failed: length must be an integer >= 0');
}
var len = length === 0 ? 0 : length;
var C;
var isArray = IsArray(originalArray);
if (isArray) {
C = Get(originalArray, 'constructor');
// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
// if (IsConstructor(C)) {
// if C is another realm's Array, C = undefined
// Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
// }
if ($species && Type(C) === 'Object') {
C = Get(C, $species);
if (C === null) {
C = void 0;
}
}
}
if (typeof C === 'undefined') {
return $Array(len);
}
if (!IsConstructor(C)) {
throw new $TypeError('C must be a constructor');
}
return new C(len); // Construct(C, len);
};

19
node_modules/es-abstract/2015/Call.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var inspect = require('object-inspect');
var IsCallable = require('./IsCallable');
// https://www.ecma-international.org/ecma-262/6.0/#sec-call
module.exports = function Call(F, V) {
var args = arguments.length > 2 ? arguments[2] : [];
if (!IsCallable(F)) {
throw new $TypeError(inspect(F) + ' is not a function');
}
return F.apply(V, args);
};

View File

@@ -0,0 +1,22 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var SameValue = require('./SameValue');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring
module.exports = function CanonicalNumericIndexString(argument) {
if (Type(argument) !== 'String') {
throw new $TypeError('Assertion failed: `argument` must be a String');
}
if (argument === '-0') { return -0; }
var n = ToNumber(argument);
if (SameValue(ToString(n), argument)) { return n; }
return void 0;
};

View File

@@ -0,0 +1,39 @@
'use strict';
var has = require('has');
var assertRecord = require('../helpers/assertRecord');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsGenericDescriptor = require('./IsGenericDescriptor');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor
module.exports = function CompletePropertyDescriptor(Desc) {
/* eslint no-param-reassign: 0 */
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
if (!has(Desc, '[[Value]]')) {
Desc['[[Value]]'] = void 0;
}
if (!has(Desc, '[[Writable]]')) {
Desc['[[Writable]]'] = false;
}
} else {
if (!has(Desc, '[[Get]]')) {
Desc['[[Get]]'] = void 0;
}
if (!has(Desc, '[[Set]]')) {
Desc['[[Set]]'] = void 0;
}
}
if (!has(Desc, '[[Enumerable]]')) {
Desc['[[Enumerable]]'] = false;
}
if (!has(Desc, '[[Configurable]]')) {
Desc['[[Configurable]]'] = false;
}
return Desc;
};

45
node_modules/es-abstract/2015/CreateDataProperty.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsExtensible = require('./IsExtensible');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty
module.exports = function CreateDataProperty(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var oldDesc = OrdinaryGetOwnProperty(O, P);
var extensible = oldDesc || IsExtensible(O);
var immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);
if (immutable || !extensible) {
return false;
}
return DefineOwnProperty(
IsDataDescriptor,
SameValue,
FromPropertyDescriptor,
O,
P,
{
'[[Configurable]]': true,
'[[Enumerable]]': true,
'[[Value]]': V,
'[[Writable]]': true
}
);
};

View File

@@ -0,0 +1,25 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var CreateDataProperty = require('./CreateDataProperty');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
module.exports = function CreateDataPropertyOrThrow(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var success = CreateDataProperty(O, P, V);
if (!success) {
throw new $TypeError('unable to create data property');
}
return success;
};

30
node_modules/es-abstract/2015/CreateHTML.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var callBound = require('../helpers/callBound');
var $replace = callBound('String.prototype.replace');
var RequireObjectCoercible = require('./RequireObjectCoercible');
var ToString = require('./ToString');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml
module.exports = function CreateHTML(string, tag, attribute, value) {
if (Type(tag) !== 'String' || Type(attribute) !== 'String') {
throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings');
}
var str = RequireObjectCoercible(string);
var S = ToString(str);
var p1 = '<' + tag;
if (attribute !== '') {
var V = ToString(value);
var escapedV = $replace(V, /\x22/g, '&quot;');
p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22';
}
return p1 + '>' + S + '</' + tag + '>';
};

View File

@@ -0,0 +1,19 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject
module.exports = function CreateIterResultObject(value, done) {
if (Type(done) !== 'Boolean') {
throw new $TypeError('Assertion failed: Type(done) is not Boolean');
}
return {
value: value,
done: done
};
};

View File

@@ -0,0 +1,43 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var callBound = require('../helpers/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf');
var $push = callBound('Array.prototype.push');
var Get = require('./Get');
var IsArray = require('./IsArray');
var ToLength = require('./ToLength');
var ToString = require('./ToString');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike
module.exports = function CreateListFromArrayLike(obj) {
var elementTypes = arguments.length > 1
? arguments[1]
: ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object'];
if (Type(obj) !== 'Object') {
throw new $TypeError('Assertion failed: `obj` must be an Object');
}
if (!IsArray(elementTypes)) {
throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array');
}
var len = ToLength(Get(obj, 'length'));
var list = [];
var index = 0;
while (index < len) {
var indexName = ToString(index);
var next = Get(obj, indexName);
var nextType = Type(next);
if ($indexOf(elementTypes, nextType) < 0) {
throw new $TypeError('item type ' + nextType + ' is not a valid elementType');
}
$push(list, next);
index += 1;
}
return list;
};

40
node_modules/es-abstract/2015/CreateMethodProperty.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty
module.exports = function CreateMethodProperty(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var newDesc = {
'[[Configurable]]': true,
'[[Enumerable]]': false,
'[[Value]]': V,
'[[Writable]]': true
};
return DefineOwnProperty(
IsDataDescriptor,
SameValue,
FromPropertyDescriptor,
O,
P,
newDesc
);
};

54
node_modules/es-abstract/2015/DateFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,54 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $EvalError = GetIntrinsic('%EvalError%');
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');
var MonthFromTime = require('./MonthFromTime');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5
module.exports = function DateFromTime(t) {
var m = MonthFromTime(t);
var d = DayWithinYear(t);
if (m === 0) {
return d + 1;
}
if (m === 1) {
return d - 30;
}
var leap = InLeapYear(t);
if (m === 2) {
return d - 58 - leap;
}
if (m === 3) {
return d - 89 - leap;
}
if (m === 4) {
return d - 119 - leap;
}
if (m === 5) {
return d - 150 - leap;
}
if (m === 6) {
return d - 180 - leap;
}
if (m === 7) {
return d - 211 - leap;
}
if (m === 8) {
return d - 242 - leap;
}
if (m === 9) {
return d - 272 - leap;
}
if (m === 10) {
return d - 303 - leap;
}
if (m === 11) {
return d - 333 - leap;
}
throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m);
};

13
node_modules/es-abstract/2015/Day.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
var msPerDay = require('../helpers/timeConstants').msPerDay;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2
module.exports = function Day(t) {
return $floor(t / msPerDay);
};

12
node_modules/es-abstract/2015/DayFromYear.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
module.exports = function DayFromYear(y) {
return (365 * (y - 1970)) + $floor((y - 1969) / 4) - $floor((y - 1901) / 100) + $floor((y - 1601) / 400);
};

11
node_modules/es-abstract/2015/DayWithinYear.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
var Day = require('./Day');
var DayFromYear = require('./DayFromYear');
var YearFromTime = require('./YearFromTime');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4
module.exports = function DayWithinYear(t) {
return Day(t) - DayFromYear(YearFromTime(t));
};

18
node_modules/es-abstract/2015/DaysInYear.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var mod = require('../helpers/mod');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
module.exports = function DaysInYear(y) {
if (mod(y, 4) !== 0) {
return 365;
}
if (mod(y, 100) !== 0) {
return 366;
}
if (mod(y, 400) !== 0) {
return 365;
}
return 366;
};

50
node_modules/es-abstract/2015/DefinePropertyOrThrow.js generated vendored Normal file
View File

@@ -0,0 +1,50 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow
module.exports = function DefinePropertyOrThrow(O, P, desc) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var Desc = isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
}
return DefineOwnProperty(
IsDataDescriptor,
SameValue,
FromPropertyDescriptor,
O,
P,
Desc
);
};

27
node_modules/es-abstract/2015/DeletePropertyOrThrow.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow
module.exports = function DeletePropertyOrThrow(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
// eslint-disable-next-line no-param-reassign
var success = delete O[P];
if (!success) {
throw new $TypeError('Attempt to delete property failed.');
}
return success;
};

19
node_modules/es-abstract/2015/EnumerableOwnNames.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var keys = require('object-keys');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames
module.exports = function EnumerableOwnNames(O) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
return keys(O);
};

View File

@@ -0,0 +1,36 @@
'use strict';
var assertRecord = require('../helpers/assertRecord');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor
module.exports = function FromPropertyDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return Desc;
}
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
var obj = {};
if ('[[Value]]' in Desc) {
obj.value = Desc['[[Value]]'];
}
if ('[[Writable]]' in Desc) {
obj.writable = Desc['[[Writable]]'];
}
if ('[[Get]]' in Desc) {
obj.get = Desc['[[Get]]'];
}
if ('[[Set]]' in Desc) {
obj.set = Desc['[[Set]]'];
}
if ('[[Enumerable]]' in Desc) {
obj.enumerable = Desc['[[Enumerable]]'];
}
if ('[[Configurable]]' in Desc) {
obj.configurable = Desc['[[Configurable]]'];
}
return obj;
};

30
node_modules/es-abstract/2015/Get.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var inspect = require('object-inspect');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
/**
* 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p
* 1. Assert: Type(O) is Object.
* 2. Assert: IsPropertyKey(P) is true.
* 3. Return O.[[Get]](P, O).
*/
module.exports = function Get(O, P) {
// 7.3.1.1
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
// 7.3.1.2
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
}
// 7.3.1.3
return O[P];
};

35
node_modules/es-abstract/2015/GetIterator.js generated vendored Normal file
View File

@@ -0,0 +1,35 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var getIteratorMethod = require('../helpers/getIteratorMethod');
var AdvanceStringIndex = require('./AdvanceStringIndex');
var Call = require('./Call');
var GetMethod = require('./GetMethod');
var IsArray = require('./IsArray');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-getiterator
module.exports = function GetIterator(obj, method) {
var actualMethod = method;
if (arguments.length < 2) {
actualMethod = getIteratorMethod(
{
AdvanceStringIndex: AdvanceStringIndex,
GetMethod: GetMethod,
IsArray: IsArray,
Type: Type
},
obj
);
}
var iterator = Call(actualMethod, obj);
if (Type(iterator) !== 'Object') {
throw new $TypeError('iterator must return an object');
}
return iterator;
};

42
node_modules/es-abstract/2015/GetMethod.js generated vendored Normal file
View File

@@ -0,0 +1,42 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var GetV = require('./GetV');
var IsCallable = require('./IsCallable');
var IsPropertyKey = require('./IsPropertyKey');
/**
* 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod
* 1. Assert: IsPropertyKey(P) is true.
* 2. Let func be GetV(O, P).
* 3. ReturnIfAbrupt(func).
* 4. If func is either undefined or null, return undefined.
* 5. If IsCallable(func) is false, throw a TypeError exception.
* 6. Return func.
*/
module.exports = function GetMethod(O, P) {
// 7.3.9.1
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
// 7.3.9.2
var func = GetV(O, P);
// 7.3.9.4
if (func == null) {
return void 0;
}
// 7.3.9.5
if (!IsCallable(func)) {
throw new $TypeError(P + 'is not a function');
}
// 7.3.9.6
return func;
};

31
node_modules/es-abstract/2015/GetOwnPropertyKeys.js generated vendored Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var hasSymbols = require('has-symbols')();
var $TypeError = GetIntrinsic('%TypeError%');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%');
var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%');
var keys = require('object-keys');
var esType = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys
module.exports = function GetOwnPropertyKeys(O, Type) {
if (esType(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (Type === 'Symbol') {
return $gOPS ? $gOPS(O) : [];
}
if (Type === 'String') {
if (!$gOPN) {
return keys(O);
}
return $gOPN(O);
}
throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`');
};

View File

@@ -0,0 +1,28 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Function = GetIntrinsic('%Function%');
var $TypeError = GetIntrinsic('%TypeError%');
var Get = require('./Get');
var IsConstructor = require('./IsConstructor');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor
module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) {
var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
if (!IsConstructor(constructor)) {
throw new $TypeError('Assertion failed: `constructor` must be a constructor');
}
var proto = Get(constructor, 'prototype');
if (Type(proto) !== 'Object') {
if (!(constructor instanceof $Function)) {
// ignore other realms, for now
throw new $TypeError('cross-realm constructors not currently supported');
}
proto = intrinsic;
}
return proto;
};

104
node_modules/es-abstract/2015/GetSubstitution.js generated vendored Normal file
View File

@@ -0,0 +1,104 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $parseInt = GetIntrinsic('%parseInt%');
var inspect = require('object-inspect');
var regexTester = require('../helpers/regexTester');
var callBound = require('../helpers/callBound');
var every = require('../helpers/every');
var isDigit = regexTester(/^[0-9]$/);
var $charAt = callBound('String.prototype.charAt');
var $strSlice = callBound('String.prototype.slice');
var IsArray = require('./IsArray');
var IsInteger = require('./IsInteger');
var Type = require('./Type');
var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false
var isStringOrHole = function (capture, index, arr) {
return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined');
};
// https://www.ecma-international.org/ecma-262/6.0/#sec-getsubstitution
// eslint-disable-next-line max-statements, max-params, max-lines-per-function
module.exports = function GetSubstitution(matched, str, position, captures, replacement) {
if (Type(matched) !== 'String') {
throw new $TypeError('Assertion failed: `matched` must be a String');
}
var matchLength = matched.length;
if (Type(str) !== 'String') {
throw new $TypeError('Assertion failed: `str` must be a String');
}
var stringLength = str.length;
if (!IsInteger(position) || position < 0 || position > stringLength) {
throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position));
}
if (!IsArray(captures) || !every(captures, isStringOrHole)) {
throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures));
}
if (Type(replacement) !== 'String') {
throw new $TypeError('Assertion failed: `replacement` must be a String');
}
var tailPos = position + matchLength;
var m = captures.length;
var result = '';
for (var i = 0; i < replacement.length; i += 1) {
// if this is a $, and it's not the end of the replacement
var current = $charAt(replacement, i);
var isLast = (i + 1) >= replacement.length;
var nextIsLast = (i + 2) >= replacement.length;
if (current === '$' && !isLast) {
var next = $charAt(replacement, i + 1);
if (next === '$') {
result += '$';
i += 1;
} else if (next === '&') {
result += matched;
i += 1;
} else if (next === '`') {
result += position === 0 ? '' : $strSlice(str, 0, position - 1);
i += 1;
} else if (next === "'") {
result += tailPos >= stringLength ? '' : $strSlice(str, tailPos);
i += 1;
} else {
var nextNext = nextIsLast ? null : $charAt(replacement, i + 2);
if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) {
// $1 through $9, and not followed by a digit
var n = $parseInt(next, 10);
// if (n > m, impl-defined)
result += (n <= m && Type(captures[n - 1]) === 'Undefined') ? '' : captures[n - 1];
i += 1;
} else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) {
// $00 through $99
var nn = next + nextNext;
var nnI = $parseInt(nn, 10) - 1;
// if nn === '00' or nn > m, impl-defined
result += (nn <= m && Type(captures[nnI]) === 'Undefined') ? '' : captures[nnI];
i += 2;
} else {
result += '$';
}
}
} else {
// the final $, or else not a $
result += $charAt(replacement, i);
}
}
return result;
};

29
node_modules/es-abstract/2015/GetV.js generated vendored Normal file
View File

@@ -0,0 +1,29 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var IsPropertyKey = require('./IsPropertyKey');
var ToObject = require('./ToObject');
/**
* 7.3.2 GetV (V, P)
* 1. Assert: IsPropertyKey(P) is true.
* 2. Let O be ToObject(V).
* 3. ReturnIfAbrupt(O).
* 4. Return O.[[Get]](P, V).
*/
module.exports = function GetV(V, P) {
// 7.3.2.1
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
// 7.3.2.2-3
var O = ToObject(V);
// 7.3.2.4
return O[P];
};

22
node_modules/es-abstract/2015/HasOwnProperty.js generated vendored Normal file
View File

@@ -0,0 +1,22 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var has = require('has');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty
module.exports = function HasOwnProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
return has(O, P);
};

20
node_modules/es-abstract/2015/HasProperty.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
module.exports = function HasProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
return P in O;
};

16
node_modules/es-abstract/2015/HourFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
var mod = require('../helpers/mod');
var timeConstants = require('../helpers/timeConstants');
var msPerHour = timeConstants.msPerHour;
var HoursPerDay = timeConstants.HoursPerDay;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
module.exports = function HourFromTime(t) {
return mod($floor(t / msPerHour), HoursPerDay);
};

21
node_modules/es-abstract/2015/InLeapYear.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $EvalError = GetIntrinsic('%EvalError%');
var DaysInYear = require('./DaysInYear');
var YearFromTime = require('./YearFromTime');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
module.exports = function InLeapYear(t) {
var days = DaysInYear(YearFromTime(t));
if (days === 365) {
return 0;
}
if (days === 366) {
return 1;
}
throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days);
};

30
node_modules/es-abstract/2015/InstanceofOperator.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $hasInstance = GetIntrinsic('Symbol.hasInstance', true);
var Call = require('./Call');
var GetMethod = require('./GetMethod');
var IsCallable = require('./IsCallable');
var OrdinaryHasInstance = require('./OrdinaryHasInstance');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator
module.exports = function InstanceofOperator(O, C) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0;
if (typeof instOfHandler !== 'undefined') {
return ToBoolean(Call(instOfHandler, C, [O]));
}
if (!IsCallable(C)) {
throw new $TypeError('`C` is not Callable');
}
return OrdinaryHasInstance(C, O);
};

22
node_modules/es-abstract/2015/Invoke.js generated vendored Normal file
View File

@@ -0,0 +1,22 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $arraySlice = require('../helpers/callBound')('Array.prototype.slice');
var Call = require('./Call');
var GetV = require('./GetV');
var IsPropertyKey = require('./IsPropertyKey');
// https://ecma-international.org/ecma-262/6.0/#sec-invoke
module.exports = function Invoke(O, P) {
if (!IsPropertyKey(P)) {
throw new $TypeError('P must be a Property Key');
}
var argumentsList = $arraySlice(arguments, 2);
var func = GetV(O, P);
return Call(func, O, argumentsList);
};

23
node_modules/es-abstract/2015/IsAccessorDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var has = require('has');
var assertRecord = require('../helpers/assertRecord');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor
module.exports = function IsAccessorDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
return false;
}
return true;
};

14
node_modules/es-abstract/2015/IsArray.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Array = GetIntrinsic('%Array%');
// eslint-disable-next-line global-require
var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString');
// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray
module.exports = $Array.isArray || function IsArray(argument) {
return toStr(argument) === '[object Array]';
};

5
node_modules/es-abstract/2015/IsCallable.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
'use strict';
// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11
module.exports = require('is-callable');

25
node_modules/es-abstract/2015/IsConcatSpreadable.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true);
var Get = require('./Get');
var IsArray = require('./IsArray');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable
module.exports = function IsConcatSpreadable(O) {
if (Type(O) !== 'Object') {
return false;
}
if ($isConcatSpreadable) {
var spreadable = Get(O, $isConcatSpreadable);
if (typeof spreadable !== 'undefined') {
return ToBoolean(spreadable);
}
}
return IsArray(O);
};

7
node_modules/es-abstract/2015/IsConstructor.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
'use strict';
// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor
module.exports = function IsConstructor(argument) {
return typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`
};

23
node_modules/es-abstract/2015/IsDataDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var has = require('has');
var assertRecord = require('../helpers/assertRecord');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor
module.exports = function IsDataDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
return false;
}
return true;
};

20
node_modules/es-abstract/2015/IsExtensible.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Object = GetIntrinsic('%Object%');
var isPrimitive = require('../helpers/isPrimitive');
var $preventExtensions = $Object.preventExtensions;
var $isExtensible = $Object.isExtensible;
// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o
module.exports = $preventExtensions
? function IsExtensible(obj) {
return !isPrimitive(obj) && $isExtensible(obj);
}
: function IsExtensible(obj) {
return !isPrimitive(obj);
};

23
node_modules/es-abstract/2015/IsGenericDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var assertRecord = require('../helpers/assertRecord');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor
module.exports = function IsGenericDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) {
return true;
}
return false;
};

21
node_modules/es-abstract/2015/IsInteger.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Math = GetIntrinsic('%Math%');
var $floor = $Math.floor;
var $abs = $Math.abs;
var $isNaN = require('../helpers/isNaN');
var $isFinite = require('../helpers/isFinite');
// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger
module.exports = function IsInteger(argument) {
if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {
return false;
}
var abs = $abs(argument);
return $floor(abs) === abs;
};

24
node_modules/es-abstract/2015/IsPromise.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
var callBound = require('../helpers/callBound');
var $PromiseThen = callBound('Promise.prototype.then', true);
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise
module.exports = function IsPromise(x) {
if (Type(x) !== 'Object') {
return false;
}
if (!$PromiseThen) { // Promises are not supported
return false;
}
try {
$PromiseThen(x); // throws if not a promise
} catch (e) {
return false;
}
return true;
};

17
node_modules/es-abstract/2015/IsPropertyDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
'use strict';
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var Type = require('./Type');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
module.exports = function IsPropertyDescriptor(Desc) {
return isPropertyDescriptor({
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor,
Type: Type
}, Desc);
};

7
node_modules/es-abstract/2015/IsPropertyKey.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
'use strict';
// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey
module.exports = function IsPropertyKey(argument) {
return typeof argument === 'string' || typeof argument === 'symbol';
};

24
node_modules/es-abstract/2015/IsRegExp.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $match = GetIntrinsic('%Symbol.match%', true);
var hasRegExpMatcher = require('is-regex');
var ToBoolean = require('./ToBoolean');
// https://ecma-international.org/ecma-262/6.0/#sec-isregexp
module.exports = function IsRegExp(argument) {
if (!argument || typeof argument !== 'object') {
return false;
}
if ($match) {
var isRegExp = argument[$match];
if (typeof isRegExp !== 'undefined') {
return ToBoolean(isRegExp);
}
}
return hasRegExpMatcher(argument);
};

50
node_modules/es-abstract/2015/IteratorClose.js generated vendored Normal file
View File

@@ -0,0 +1,50 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Call = require('./Call');
var GetMethod = require('./GetMethod');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose
module.exports = function IteratorClose(iterator, completion) {
if (Type(iterator) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterator) is not Object');
}
if (!IsCallable(completion)) {
throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');
}
var completionThunk = completion;
var iteratorReturn = GetMethod(iterator, 'return');
if (typeof iteratorReturn === 'undefined') {
return completionThunk();
}
var completionRecord;
try {
var innerResult = Call(iteratorReturn, iterator, []);
} catch (e) {
// if we hit here, then "e" is the innerResult completion that needs re-throwing
// if the completion is of type "throw", this will throw.
completionThunk();
completionThunk = null; // ensure it's not called twice.
// if not, then return the innerResult completion
throw e;
}
completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does
completionThunk = null; // ensure it's not called twice.
if (Type(innerResult) !== 'Object') {
throw new $TypeError('iterator .return must return an object');
}
return completionRecord;
};

18
node_modules/es-abstract/2015/IteratorComplete.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Get = require('./Get');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete
module.exports = function IteratorComplete(iterResult) {
if (Type(iterResult) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
}
return ToBoolean(Get(iterResult, 'done'));
};

18
node_modules/es-abstract/2015/IteratorNext.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Invoke = require('./Invoke');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext
module.exports = function IteratorNext(iterator, value) {
var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
if (Type(result) !== 'Object') {
throw new $TypeError('iterator next must return an object');
}
return result;
};

13
node_modules/es-abstract/2015/IteratorStep.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var IteratorComplete = require('./IteratorComplete');
var IteratorNext = require('./IteratorNext');
// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep
module.exports = function IteratorStep(iterator) {
var result = IteratorNext(iterator);
var done = IteratorComplete(result);
return done === true ? false : result;
};

18
node_modules/es-abstract/2015/IteratorValue.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Get = require('./Get');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue
module.exports = function IteratorValue(iterResult) {
if (Type(iterResult) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
}
return Get(iterResult, 'value');
};

13
node_modules/es-abstract/2015/MakeDate.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var $isFinite = require('../helpers/isFinite');
var msPerDay = require('../helpers/timeConstants').msPerDay;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13
module.exports = function MakeDate(day, time) {
if (!$isFinite(day) || !$isFinite(time)) {
return NaN;
}
return (day * msPerDay) + time;
};

33
node_modules/es-abstract/2015/MakeDay.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
var $DateUTC = GetIntrinsic('%Date.UTC%');
var mod = require('../helpers/mod');
var $isFinite = require('../helpers/isFinite');
var DateFromTime = require('./DateFromTime');
var Day = require('./Day');
var MonthFromTime = require('./MonthFromTime');
var ToInteger = require('./ToInteger');
var YearFromTime = require('./YearFromTime');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12
module.exports = function MakeDay(year, month, date) {
if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) {
return NaN;
}
var y = ToInteger(year);
var m = ToInteger(month);
var dt = ToInteger(date);
var ym = y + $floor(m / 12);
var mn = mod(m, 12);
var t = $DateUTC(ym, mn, 1);
if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) {
return NaN;
}
return Day(t) + dt - 1;
};

23
node_modules/es-abstract/2015/MakeTime.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var $isFinite = require('../helpers/isFinite');
var timeConstants = require('../helpers/timeConstants');
var msPerSecond = timeConstants.msPerSecond;
var msPerMinute = timeConstants.msPerMinute;
var msPerHour = timeConstants.msPerHour;
var ToInteger = require('./ToInteger');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11
module.exports = function MakeTime(hour, min, sec, ms) {
if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) {
return NaN;
}
var h = ToInteger(hour);
var m = ToInteger(min);
var s = ToInteger(sec);
var milli = ToInteger(ms);
var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli;
return t;
};

16
node_modules/es-abstract/2015/MinFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
var mod = require('../helpers/mod');
var timeConstants = require('../helpers/timeConstants');
var msPerMinute = timeConstants.msPerMinute;
var MinutesPerHour = timeConstants.MinutesPerHour;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
module.exports = function MinFromTime(t) {
return mod($floor(t / msPerMinute), MinutesPerHour);
};

47
node_modules/es-abstract/2015/MonthFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,47 @@
'use strict';
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4
module.exports = function MonthFromTime(t) {
var day = DayWithinYear(t);
if (0 <= day && day < 31) {
return 0;
}
var leap = InLeapYear(t);
if (31 <= day && day < (59 + leap)) {
return 1;
}
if ((59 + leap) <= day && day < (90 + leap)) {
return 2;
}
if ((90 + leap) <= day && day < (120 + leap)) {
return 3;
}
if ((120 + leap) <= day && day < (151 + leap)) {
return 4;
}
if ((151 + leap) <= day && day < (181 + leap)) {
return 5;
}
if ((181 + leap) <= day && day < (212 + leap)) {
return 6;
}
if ((212 + leap) <= day && day < (243 + leap)) {
return 7;
}
if ((243 + leap) <= day && day < (273 + leap)) {
return 8;
}
if ((273 + leap) <= day && day < (304 + leap)) {
return 9;
}
if ((304 + leap) <= day && day < (334 + leap)) {
return 10;
}
if ((334 + leap) <= day && day < (365 + leap)) {
return 11;
}
};

37
node_modules/es-abstract/2015/ObjectCreate.js generated vendored Normal file
View File

@@ -0,0 +1,37 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $ObjectCreate = GetIntrinsic('%Object.create%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var Type = require('./Type');
var hasProto = !({ __proto__: null } instanceof Object);
// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate
module.exports = function ObjectCreate(proto, internalSlotsList) {
if (proto !== null && Type(proto) !== 'Object') {
throw new $TypeError('Assertion failed: `proto` must be null or an object');
}
var slots = arguments.length < 2 ? [] : internalSlotsList;
if (slots.length > 0) {
throw new $SyntaxError('es-abstract does not yet support internal slots');
}
if ($ObjectCreate) {
return $ObjectCreate(proto);
}
if (hasProto) {
return { __proto__: proto };
}
if (proto === null) {
throw new $SyntaxError('native Object.create support is required to create null objects');
}
var T = function T() {};
T.prototype = proto;
return new T();
};

View File

@@ -0,0 +1,61 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $gOPD = require('../helpers/getOwnPropertyDescriptor');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsExtensible = require('./IsExtensible');
var IsPropertyKey = require('./IsPropertyKey');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var SameValue = require('./SameValue');
var Type = require('./Type');
var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');
// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty
module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!$gOPD) {
// ES3/IE 8 fallback
if (IsAccessorDescriptor(Desc)) {
throw new $SyntaxError('This environment does not support accessor property descriptors.');
}
var creatingNormalDataProperty = !(P in O)
&& Desc['[[Writable]]']
&& Desc['[[Enumerable]]']
&& Desc['[[Configurable]]']
&& '[[Value]]' in Desc;
var settingExistingDataProperty = (P in O)
&& (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]'])
&& (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]'])
&& (!('[[Writable]]' in Desc) || Desc['[[Writable]]'])
&& '[[Value]]' in Desc;
if (creatingNormalDataProperty || settingExistingDataProperty) {
O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign
return SameValue(O[P], Desc['[[Value]]']);
}
throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties');
}
var desc = $gOPD(O, P);
var current = desc && ToPropertyDescriptor(desc);
var extensible = IsExtensible(O);
return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current);
};

View File

@@ -0,0 +1,44 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $gOPD = require('../helpers/getOwnPropertyDescriptor');
var $TypeError = GetIntrinsic('%TypeError%');
var callBound = require('../helpers/callBound');
var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
var has = require('has');
var IsArray = require('./IsArray');
var IsPropertyKey = require('./IsPropertyKey');
var IsRegExp = require('./IsRegExp');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty
module.exports = function OrdinaryGetOwnProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!has(O, P)) {
return void 0;
}
if (!$gOPD) {
// ES3 / IE 8 fallback
var arrayLength = IsArray(O) && P === 'length';
var regexLastIndex = IsRegExp(O) && P === 'lastIndex';
return {
'[[Configurable]]': !(arrayLength || regexLastIndex),
'[[Enumerable]]': $isEnumerable(O, P),
'[[Value]]': O[P],
'[[Writable]]': true
};
}
return ToPropertyDescriptor($gOPD(O, P));
};

25
node_modules/es-abstract/2015/OrdinaryHasInstance.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Get = require('./Get');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance
module.exports = function OrdinaryHasInstance(C, O) {
if (IsCallable(C) === false) {
return false;
}
if (Type(O) !== 'Object') {
return false;
}
var P = Get(C, 'prototype');
if (Type(P) !== 'Object') {
throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');
}
return O instanceof C;
};

20
node_modules/es-abstract/2015/OrdinaryHasProperty.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty
module.exports = function OrdinaryHasProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
return P in O;
};

32
node_modules/es-abstract/2015/RegExpExec.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var regexExec = require('../helpers/callBound')('RegExp.prototype.exec');
var Call = require('./Call');
var Get = require('./Get');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec
module.exports = function RegExpExec(R, S) {
if (Type(R) !== 'Object') {
throw new $TypeError('Assertion failed: `R` must be an Object');
}
if (Type(S) !== 'String') {
throw new $TypeError('Assertion failed: `S` must be a String');
}
var exec = Get(R, 'exec');
if (IsCallable(exec)) {
var result = Call(exec, R, [S]);
if (result === null || Type(result) === 'Object') {
return result;
}
throw new $TypeError('"exec" method must return `null` or an Object');
}
return regexExec(R, S);
};

View File

@@ -0,0 +1,3 @@
'use strict';
module.exports = require('../5/CheckObjectCoercible');

13
node_modules/es-abstract/2015/SameValue.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var $isNaN = require('../helpers/isNaN');
// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12
module.exports = function SameValue(x, y) {
if (x === y) { // 0 === -0, but they are not identical.
if (x === 0) { return 1 / x === 1 / y; }
return true;
}
return $isNaN(x) && $isNaN(y);
};

9
node_modules/es-abstract/2015/SameValueZero.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var $isNaN = require('../helpers/isNaN');
// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero
module.exports = function SameValueZero(x, y) {
return (x === y) || ($isNaN(x) && $isNaN(y));
};

16
node_modules/es-abstract/2015/SecFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $floor = GetIntrinsic('%Math.floor%');
var mod = require('../helpers/mod');
var timeConstants = require('../helpers/timeConstants');
var msPerSecond = timeConstants.msPerSecond;
var SecondsPerMinute = timeConstants.SecondsPerMinute;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
module.exports = function SecFromTime(t) {
return mod($floor(t / msPerSecond), SecondsPerMinute);
};

32
node_modules/es-abstract/2015/Set.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw
module.exports = function Set(O, P, V, Throw) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
if (Type(Throw) !== 'Boolean') {
throw new $TypeError('Assertion failed: `Throw` must be a Boolean');
}
if (Throw) {
O[P] = V; // eslint-disable-line no-param-reassign
return true;
} else {
try {
O[P] = V; // eslint-disable-line no-param-reassign
} catch (e) {
return false;
}
}
};

44
node_modules/es-abstract/2015/SetFunctionName.js generated vendored Normal file
View File

@@ -0,0 +1,44 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var has = require('has');
var $TypeError = GetIntrinsic('%TypeError%');
var getSymbolDescription = require('../helpers/getSymbolDescription');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var IsExtensible = require('./IsExtensible');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname
module.exports = function SetFunctionName(F, name) {
if (typeof F !== 'function') {
throw new $TypeError('Assertion failed: `F` must be a function');
}
if (!IsExtensible(F) || has(F, 'name')) {
throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property');
}
var nameType = Type(name);
if (nameType !== 'Symbol' && nameType !== 'String') {
throw new $TypeError('Assertion failed: `name` must be a Symbol or a String');
}
if (nameType === 'Symbol') {
var description = getSymbolDescription(name);
// eslint-disable-next-line no-param-reassign
name = typeof description === 'undefined' ? '' : '[' + description + ']';
}
if (arguments.length > 2) {
var prefix = arguments[2];
// eslint-disable-next-line no-param-reassign
name = prefix + ' ' + name;
}
return DefinePropertyOrThrow(F, 'name', {
'[[Value]]': name,
'[[Writable]]': false,
'[[Enumerable]]': false,
'[[Configurable]]': true
});
};

57
node_modules/es-abstract/2015/SetIntegrityLevel.js generated vendored Normal file
View File

@@ -0,0 +1,57 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $preventExtensions = GetIntrinsic('%Object.preventExtensions%');
var $gOPD = require('../helpers/getOwnPropertyDescriptor');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%');
var forEach = require('../helpers/forEach');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel
module.exports = function SetIntegrityLevel(O, level) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (level !== 'sealed' && level !== 'frozen') {
throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`');
}
if (!$preventExtensions) {
throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support');
}
var status = $preventExtensions(O);
if (!status) {
return false;
}
if (!$gOPN) {
throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support');
}
var theKeys = $gOPN(O);
if (level === 'sealed') {
forEach(theKeys, function (k) {
DefinePropertyOrThrow(O, k, { configurable: false });
});
} else if (level === 'frozen') {
forEach(theKeys, function (k) {
var currentDesc = $gOPD(O, k);
if (typeof currentDesc !== 'undefined') {
var desc;
if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) {
desc = { configurable: false };
} else {
desc = { configurable: false, writable: false };
}
DefinePropertyOrThrow(O, k, desc);
}
});
}
return true;
};

32
node_modules/es-abstract/2015/SpeciesConstructor.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var IsConstructor = require('./IsConstructor');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor
module.exports = function SpeciesConstructor(O, defaultConstructor) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
var C = O.constructor;
if (typeof C === 'undefined') {
return defaultConstructor;
}
if (Type(C) !== 'Object') {
throw new $TypeError('O.constructor is not an Object');
}
var S = $species ? C[$species] : void 0;
if (S == null) {
return defaultConstructor;
}
if (IsConstructor(S)) {
return S;
}
throw new $TypeError('no constructor found');
};

View File

@@ -0,0 +1,17 @@
'use strict';
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6
module.exports = function StrictEqualityComparison(x, y) {
var xType = Type(x);
var yType = Type(y);
if (xType !== yType) {
return false;
}
if (xType === 'Undefined' || xType === 'Null') {
return true;
}
return x === y; // shortcut for steps 4-7
};

View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var callBound = require('../helpers/callBound');
var $SymbolToString = callBound('Symbol.prototype.toString', true);
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring
module.exports = function SymbolDescriptiveString(sym) {
if (Type(sym) !== 'Symbol') {
throw new $TypeError('Assertion failed: `sym` must be a Symbol');
}
return $SymbolToString(sym);
};

42
node_modules/es-abstract/2015/TestIntegrityLevel.js generated vendored Normal file
View File

@@ -0,0 +1,42 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $gOPD = require('../helpers/getOwnPropertyDescriptor');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%');
var $TypeError = GetIntrinsic('%TypeError%');
var every = require('../helpers/every');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsExtensible = require('./IsExtensible');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel
module.exports = function TestIntegrityLevel(O, level) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (level !== 'sealed' && level !== 'frozen') {
throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`');
}
var status = IsExtensible(O);
if (status) {
return false;
}
var theKeys = $gOPN(O);
return theKeys.length === 0 || every(theKeys, function (k) {
var currentDesc = $gOPD(O, k);
if (typeof currentDesc !== 'undefined') {
if (currentDesc.configurable) {
return false;
}
if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) {
return false;
}
}
return true;
});
};

21
node_modules/es-abstract/2015/TimeClip.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Date = GetIntrinsic('%Date%');
var $Number = GetIntrinsic('%Number%');
var $abs = GetIntrinsic('%Math.abs%');
var $isFinite = require('../helpers/isFinite');
var ToNumber = require('./ToNumber');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14
module.exports = function TimeClip(time) {
if (!$isFinite(time) || $abs(time) > 8.64e15) {
return NaN;
}
return $Number(new $Date(ToNumber(time)));
};

11
node_modules/es-abstract/2015/TimeFromYear.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
var msPerDay = require('../helpers/timeConstants').msPerDay;
var DayFromYear = require('./DayFromYear');
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
module.exports = function TimeFromYear(y) {
return msPerDay * DayFromYear(y);
};

11
node_modules/es-abstract/2015/TimeWithinDay.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
var mod = require('../helpers/mod');
var msPerDay = require('../helpers/timeConstants').msPerDay;
// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2
module.exports = function TimeWithinDay(t) {
return mod(t, msPerDay);
};

5
node_modules/es-abstract/2015/ToBoolean.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
'use strict';
// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2
module.exports = function ToBoolean(value) { return !!value; };

22
node_modules/es-abstract/2015/ToDateString.js generated vendored Normal file
View File

@@ -0,0 +1,22 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $Date = GetIntrinsic('%Date%');
var $isNaN = require('../helpers/isNaN');
var Type = require('./Type');
// https://ecma-international.org/ecma-262/6.0/#sec-todatestring
module.exports = function ToDateString(tv) {
if (Type(tv) !== 'Number') {
throw new $TypeError('Assertion failed: `tv` must be a Number');
}
if ($isNaN(tv)) {
return 'Invalid Date';
}
return $Date(tv);
};

10
node_modules/es-abstract/2015/ToInt16.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
'use strict';
var ToUint16 = require('./ToUint16');
// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16
module.exports = function ToInt16(argument) {
var int16bit = ToUint16(argument);
return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;
};

9
node_modules/es-abstract/2015/ToInt32.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var ToNumber = require('./ToNumber');
// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5
module.exports = function ToInt32(x) {
return ToNumber(x) >> 0;
};

10
node_modules/es-abstract/2015/ToInt8.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
'use strict';
var ToUint8 = require('./ToUint8');
// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8
module.exports = function ToInt8(argument) {
var int8bit = ToUint8(argument);
return int8bit >= 0x80 ? int8bit - 0x100 : int8bit;
};

12
node_modules/es-abstract/2015/ToInteger.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
'use strict';
var ES5ToInteger = require('../5/ToInteger');
var ToNumber = require('./ToNumber');
// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger
module.exports = function ToInteger(value) {
var number = ToNumber(value);
return ES5ToInteger(number);
};

12
node_modules/es-abstract/2015/ToLength.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
'use strict';
var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
var ToInteger = require('./ToInteger');
module.exports = function ToLength(argument) {
var len = ToInteger(argument);
if (len <= 0) { return 0; } // includes converting -0 to +0
if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
return len;
};

59
node_modules/es-abstract/2015/ToNumber.js generated vendored Normal file
View File

@@ -0,0 +1,59 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $Number = GetIntrinsic('%Number%');
var $RegExp = GetIntrinsic('%RegExp%');
var $parseInteger = GetIntrinsic('%parseInt%');
var callBound = require('../helpers/callBound');
var regexTester = require('../helpers/regexTester');
var isPrimitive = require('../helpers/isPrimitive');
var $strSlice = callBound('String.prototype.slice');
var isBinary = regexTester(/^0b[01]+$/i);
var isOctal = regexTester(/^0o[0-7]+$/i);
var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
var hasNonWS = regexTester(nonWSregex);
// whitespace from: https://es5.github.io/#x15.5.4.20
// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
var ws = [
'\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
'\u2029\uFEFF'
].join('');
var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
var $replace = callBound('String.prototype.replace');
var $trim = function (value) {
return $replace(value, trimRegex, '');
};
var ToPrimitive = require('./ToPrimitive');
// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber
module.exports = function ToNumber(argument) {
var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);
if (typeof value === 'symbol') {
throw new $TypeError('Cannot convert a Symbol value to a number');
}
if (typeof value === 'string') {
if (isBinary(value)) {
return ToNumber($parseInteger($strSlice(value, 2), 2));
} else if (isOctal(value)) {
return ToNumber($parseInteger($strSlice(value, 2), 8));
} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
return NaN;
} else {
var trimmed = $trim(value);
if (trimmed !== value) {
return ToNumber(trimmed);
}
}
}
return $Number(value);
};

14
node_modules/es-abstract/2015/ToObject.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $Object = GetIntrinsic('%Object%');
var RequireObjectCoercible = require('./RequireObjectCoercible');
// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject
module.exports = function ToObject(value) {
RequireObjectCoercible(value);
return $Object(value);
};

12
node_modules/es-abstract/2015/ToPrimitive.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
'use strict';
var toPrimitive = require('es-to-primitive/es2015');
// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
module.exports = function ToPrimitive(input) {
if (arguments.length > 1) {
return toPrimitive(input, arguments[1]);
}
return toPrimitive(input);
};

52
node_modules/es-abstract/2015/ToPropertyDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
'use strict';
var has = require('has');
var GetIntrinsic = require('../GetIntrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var Type = require('./Type');
var ToBoolean = require('./ToBoolean');
var IsCallable = require('./IsCallable');
// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5
module.exports = function ToPropertyDescriptor(Obj) {
if (Type(Obj) !== 'Object') {
throw new $TypeError('ToPropertyDescriptor requires an object');
}
var desc = {};
if (has(Obj, 'enumerable')) {
desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);
}
if (has(Obj, 'configurable')) {
desc['[[Configurable]]'] = ToBoolean(Obj.configurable);
}
if (has(Obj, 'value')) {
desc['[[Value]]'] = Obj.value;
}
if (has(Obj, 'writable')) {
desc['[[Writable]]'] = ToBoolean(Obj.writable);
}
if (has(Obj, 'get')) {
var getter = Obj.get;
if (typeof getter !== 'undefined' && !IsCallable(getter)) {
throw new TypeError('getter must be a function');
}
desc['[[Get]]'] = getter;
}
if (has(Obj, 'set')) {
var setter = Obj.set;
if (typeof setter !== 'undefined' && !IsCallable(setter)) {
throw new $TypeError('setter must be a function');
}
desc['[[Set]]'] = setter;
}
if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {
throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');
}
return desc;
};

15
node_modules/es-abstract/2015/ToPropertyKey.js generated vendored Normal file
View File

@@ -0,0 +1,15 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $String = GetIntrinsic('%String%');
var ToPrimitive = require('./ToPrimitive');
var ToString = require('./ToString');
// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey
module.exports = function ToPropertyKey(argument) {
var key = ToPrimitive(argument, $String);
return typeof key === 'symbol' ? key : ToString(key);
};

15
node_modules/es-abstract/2015/ToString.js generated vendored Normal file
View File

@@ -0,0 +1,15 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic');
var $String = GetIntrinsic('%String%');
var $TypeError = GetIntrinsic('%TypeError%');
// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring
module.exports = function ToString(argument) {
if (typeof argument === 'symbol') {
throw new $TypeError('Cannot convert a Symbol value to a string');
}
return $String(argument);
};

Some files were not shown because too many files have changed in this diff Show More