ES2015
+: GetSubstitution
: accept undefined
instead of a holehasown
instead of has
call-bind
, get-intrinsic
, object-inspect
, which-typed-array
function-bind
, is-core-module
, mock-property
, tape
ES2015
+: NewPromiseCapability
: use AOs from the current year, not 2022ES2021
+: SetTypedArrayFromArrayLike
: use IsBigIntElementType
helpers/typedArrayConstructors
arraybuffer.prototype.slice
, function.prototype.name
, is-typed-array
, regexp.prototype.flags
, safe-array-concat
, string.prototype.trim
, string.prototype.trimend
, string.prototype.trimstart
, which-typed-array
@unicode/unicode-15.0.0
, array.from
, array.prototype.filter
, array.prototype.flatmap
, array.prototype.indexof
, is-core-module
, object.fromentries
, ses
, tape
safe-array-concat
depES2023
ES2021+
: add SetTypedArrayFromArrayLike
, SetTypedArrayFromTypedArray
ES2021
+: add CloneArrayBuffer
ES2020
+: add IsValidIntegerIndex
ES2015
+: add GetValueFromBuffer
, SetValueInBuffer
ES2016
+: add TypedArrayCreate
, TypedArraySpeciesCreate
ES2015
+: add IsWordChar
ES2017
+ add WordCharacters
ES2015
+: add Canonicalize
ES2015
+: add NewPromiseCapability
ES2017+
: NumberToRawBytes
, NumericToRawBytes
: reimplement Float64, fix integer scenarioshelpers/isLineTerminator
isInteger
helper, and use itisStringOrHole
to a helperES2017
+: RawBytesToNumber
, RawBytesToNumeric
: extract common code to helpersMAX_VALUE
helperES2017+
: RawBytesToNumber
, RawBytesToNumeric
: properly handle some scenariosES2015
+: GetV
: the receiver is V
, not O
ES2017
+: RawBytesToNumber
, RawBytesToNumeric
: fix exponent calculation for Float64, improve testsES2017
+: RawBytesToNumber
, RawBytesToNumeric
: fix logic, improve testsES2019
+: thisTimeValue
: fix spacklingES2017
+: NumberToRawBytes
, NumericToRawBytes
: use SameValue
instead of Object.is
ES2021
+: ValidateAtomicAccess
: use typed-array-byte-offset
ES2019
+: AddEntriesFromIterable
: use ThrowCompletion
ES2015
+: ObjectDefineProperties
: satisfy TODOES2015
+: GetV
: improve error messageget-intrinsic
, regexp.prototype.flags
, which-typed-array
@ljharb/eslint-config
, aud
, available-regexp-flags
, is-core-module
, tape
ES2015
+: CreateDataProperty
: use OrdinaryDefineOwnProperty
ES2015
+: CreateDataProperty
: use OrdinaryDefineOwnProperty
ES2015
+: GetPrototypeFromConstructor
: add missing assertion that intrinsicDefaultProto
is an objectES2015
+: IsDetachedBuffer
: ensure a nullish error does not crashES2015
+: ToDateString
: properly handle time values that aren’t "now"ES2015
+: ToUint8Clamp
: avoid an extra observable ToNumberES2015
+:
GetMethod: when
funcis not callable and
P` is a symbol, avoid the wrong TypeErrorES2020
+: ToBigInt
: properly throw on anything besides string, bigint, booleanES2021
+: SplitMatch
: instead of false
, return 'not-matched'
helpers/assertRecord
: handle nullish inputhelpers/isFullyPopulatedPropertyDescriptor
: handle primitive inputsES5
: ToNumber
: avoid relying on runtime .test
and .replace
ES2015
: mark IsDataDescriptor
and IsAccessorDescriptor
as spackledES2015
+: IsDetachedBuffer
: use array-buffer-byte-length
packageES2015
+: OrdinaryHasInstance
: rely on falsinessES2016
+: CreateListFromArrayLike
: hoist default element types to module levelES2022
+: StringToNumber
, ToNumber
: use string.prototype.trim
ES2022
+: IsLessThan
: fix a commentES2022
+: TypedArrayElementSize
, TypedArrayElementType
: throw a SyntaxError with an unknown TA typeES2022
+: IsLessThan
: fix a commentES2020
+: thisBigIntValue
: throw a SyntaxError, not TypeError, for unsupported featureshelpers/getIteratorMethod
: String
is always available%
for callBound
get-intrinsic
, internal-slot
, is-array-buffer
, object-inspect
function-bind
to dev depsmakeIteratorRecord
helperarray.from
, available-regexp-flags
, tape
available-typed-arrays
to runtime depsES2021
+: NumberToBigInt
: throw the proper error on an env without BigIntsES2018
+: CreateAsyncFromSyncIterator
: properly check next
method args lengthES2020
-ES2021
: Abstract Relational Comparison: handle BigInts properlyES2022
+: StringToBigInt
: invalid BigInts should be undefined
, not NaN
as in previous yearshelpers/isFinite
: properly handle BigInt valuesES2020
+: CreateListFromArrayLike
: accept BigIntsES2019
+: AsyncFromSyncIteratorContinuation
: throw a SyntaxError when > 1 arg is passedES2020
+: GetIterator
: use SyntaxError for intentionally unsupportedES2015
+: GetPrototypeFromContructor
: use SyntaxError for intentionally unsupportedES2022
+: StringToNumber
: fix non-string assertion failure messagees-set-tostringtag
, is-array-buffer
ES2015
+: add IsDetachedBuffer
ES2015+
: add DetachArrayBuffer
ES2020
+: add NumericToRawBytes
ES2017
- ES2019
: add NumberToRawBytes
ES2020+
: add RawBytesToNumeric
ES2017-ES2019
: add RawBytesToNumber
ES2017
+: add ValidateAtomicAccess
ES2021
+: add ValidateIntegerTypedArray
ES2015
+: add ValidateTypedArray
ES2015
+: add GetGlobalObject
ES2022
+: add TypedArrayElementSize
, TypedArrayElementType
ES2015
+: add max
, min
helpers/assertRecord
: add predicates for PromiseCapability and AsyncGeneratorRequest RecordsES2018
+: add AsyncIteratorClose
ES2015
+: IteratorClose
: also accept a Completion Record instance instead of a completion thunkES2015
+ (CompletionRecord, NormalCompletion), ES2018
+ (ThrowCompletion): add new AOsES2015
+ (ObjectCreate
) and ES2020
+ (OrdinaryObjectCreate
): use internal-slot
to support additional slotsES2018
+: add CreateAsyncFromSyncIterator
ES2015
+: GetMethod
: better failure messagees-set-tostringtag
packagehas-proto
packagehas-proto
, es-set-tostringtag
, internal-slot
git add
after all writing is done@ljharb/eslint-config
, aud
ES2020+
: floor
: make it work with BigInts as wellgopd
mod
helper tests (#147)string.prototype.trimend
, string.prototype.trimstart
array.prototype.filter
, array.prototype.flatmap
, array.prototype.indexof
, object.fromentries
ES2021+
: values that truncate to -0 in ToIntegerOrInfinity
(#146)is-callable
safe-regex-test
packageget-intrinsic
, is-callable
aud
, tape
ES2020+
: SameValueNonNumeric
: properly throw on BigInt valuesobject.assign
, get-intrinsic
, object-inspect
array.prototype.indexof
, diff
, es-value-fixtures
, tape
spackle
: always mkdirp new files to be written8fc256d
thisTimeValue
: use getTime
, not valueOf
, to get the time valueIsArray
helperregexp.prototype.flags
for-each
instead of foreach
ES2015+
: add ObjectDefineProperties
fromPropertyDescriptor
helperhas-property-descriptors
string.prototype.trimend
, string.prototype.trimstart
, unbox-primitive
npmignore
to autogenerate an npmignore filees-value-fixtures
, has-bigints
, functions-have-names
get-intrinsic
DefineOwnProperty
: FF 4-22 throws an exception when defining length of an array@ljharb/eslint-config
ES2015+
: CreateDataProperty
: a nonwritable but configurable property is still converted to a data propertyES2015+
: GetIterator
, IterableToArrayLike
: in Symbol-less envs, handle boxed string objectsexec
instead of test
, since the latter observably looks up exec
is-shared-array-buffer
tape
ES2018+
: EnumerableOwnPropertyNames
, ToIntegerOrInfinity
, UTF16SurrogatePairToCodePoint
: proper function namesES2015+
: GetOwnPropertyKeys
/IsExtensible
/{Set,Test}IntegrityLevel
: avoid a crash in IE 8 on missing ES5 intrinsicshelpers/DefineOwnProperty
: avoid a crash in IE 8ES2015+
: StringCreate
: properly check for prototype
being String.prototype
ES2015+
: GetV
: Fix spec URLeccheck
command; fix indentationRegExp.prototype.source
console.log
and not
(?:)`.bind
has-symbols
, is-negative-zero
, is-weakref
, object-inspect
eslint
, @ljharb/eslint-config
, object.fromentries
, safe-publish-latest
, tape
ES2020+
: CreateRegExpStringIterator
: should not have enumerable methodsarray.prototype.filter
, array.prototype.indexof
ES2021+
: IterableToList
: make method
parameter optional (#61)ES2020+
: add StringToBigInt
, ToBigInt
, ToBigInt64
, ToBigUint64
ES2017
+: add IsSharedArrayBuffer
, OrdinaryToPrimitive
ES2015+
: add CharacterRange
, IsCompatiblePropertyDescriptor
ES2020+
: add CreateRegExpStringIterator
ES2020+
: ToBigInt64
/ToBigUint64
: avoid node v10.4-v10.8 bug with limited BigInt rangeES2020+
: AbstractRelationalComparison
, AbstractEqualityComparison
: support BigIntES2020+
: ToBigInt64
/ToBigUint64
: Improve the definitions of twoSixtyThree and twoSixtyFour (#140)safeBigInt
getOwnPropertyDescriptor
helper: avoid crashing in IE < 9ArraySetLength
: node
v0.6
has a bug where array lengths can be Set but not DefinedES2020+
: NumberToBigInt
: throw a SyntaxError when BigInts are not supportedget-symbol-description
ES2018+
: AbstractRelationalComparison
: use IsStringPrefix
is-callable
, is-regex
, is-string
@ljharb/eslint-config
, tape
GetSubstitution
: add caseseslint
b54cfe8525
internal-slot
, object-inspect
eslint
, tape
ArraySetLength
: increase coverageES2020+
: ToNumber
: ensure it throws on a BigInt (#130)helpers
to "exports" field, for back compatsideEffects
fieldprepublishOnly
, for npm 7+is-regex
, is-string
, object-inspect
, unbox-primitive
eslint
, @ljharb/eslint-config
, aud
, tape
node/install
action instead of node/run
ES2020
, and a number of additional AOs: See the changelog entries for the prereleases for more information:
ES5+
: Abstract Relational Comparison
: increase coverageES2015
: add StringGetIndexProperty
ES2015+
: add RegExpCreate
, SplitMatch
, StringCreate
ES2016-ES2019
: add UTF16Decode
ES2020+
: add NumberToBigInt
ES2020+: add
BigInt::/
Number::` methods:ES5
: ToNumber
: properly refuse to parse ES6+ formsES2015+
: Invoke
: optional argumentsList must be a List of arguments, not a list of argumentsES2016+
: UTF16Encoding
: properly return a string code point instead of a numeric code pointES2020
: NumberBitwiseOp
: assert that x and y are NumbersES2015
: add missing CreateArrayIterator
AOES2015-ES2017
: add missing DaylightSavingTA
AOnpm run spackle
to update URLs left after 11d8c8df11
has-symbols
, string.prototype.trimend
, string.prototype.trimstart
, get-intrinsic
, is-callable
, is-regex
eslint
, @ljharb/eslint-config
, array.prototype.indexof
, aud
, es-value-fixtures
, object.fromentries
, tape
, diff
T::
numeric operationsBigInt(1e17)
throws on node v10.4-v10.6Number::
methodstape
v5 .equal
now uses strict equality, so no more need for is()
es-value-fixtures
helpers
: add isByteValue
, isCodePoint
, some
ES2018+
: fix GetSubstitution
with named capturesES2020
: GetIterator
: add omitted hint
parameterES2018
/ES2019
: SetFunctionLength
: Infinities should throwES2020
: ToIndex
uses SameValue
instead of SameValueZero
ES2020
: CopyDataProperties
uses CreateDataPropertyOrThrow
instead of CreateDataProperty
call-bind
instead of local helpersget-intrinsic
packagecall-bind
, get-intrinsic
, is-callable
, is-negative-zero
, is-regex
, object-inspect
, object.assign
, string.prototype.trimend
, string.prototype.trimstart
eslint
, @ljharb/eslint-config
, array.prototype.indexof
, aud
, diff
, functions-have-names
, has-bigints
, has-strict-mode
, object-is
, object.fromentries
, tape
pull_request_target
eventdeltas
script; update eslint on operations scriptsv.notNonNegativeIntegers
, v.nonConstructorFunctions
npm run test:ses
ES2020
: ToInteger
: -0
should always be normalized to +0
(#116)GetIntrinsic
: Adapt to override-mistake-fix pattern (#115)callBind
: ensure compatibility with SESis-callable
, object.assign
eslint
, @ljharb/eslint-config
ES2020
GetIntrinsic
: add %AggregateError%
, %FinalizationRegistry%
, and %WeakRef%
ES5
+: add abs
, floor
; use modulo
consistentlyGetIntrinsic
: Cache accessed intrinsics (#98)GetIntrinsic
: Add ES201x function intrinsics (#97)ES2015
+: add QuoteJSONString
, OrdinaryCreateFromConstructor
ES2017
+: add StringGetOwnProperty
ES2016
+: add UTF16Encoding
ES2018
+: add SetFunctionLength
, UnicodeEscape
isLeadingSurrogate
/isTrailingSurrogate
helpersES5
+: ToPropertyDescriptor
: use intrinsic TypeErrorES2018+
: CopyDataProperties
/NumberToString
: use intrinsic TypeErroris-regex
, object-inspect
eslint
ES2020
: ToInteger
: -0
should always be normalized to +0
(#116)GetIntrinsic
: Adapt to override-mistake-fix pattern (#115)callBind
: ensure compatibility with SESis-callable
, is-regex
, object-inspect
, object.assign
eslint
, @ljharb/eslint-config
helpers/getSymbolDescription
: use the global Symbol registry when available (#92)ES2015+
: IsConstructor
: when Reflect.construct
is available, be spec-accurate (#93)ES2015+
: Set
: Always return boolean value (#101)ES2015+
: Set
: ensure exceptions are thrown in IE 9 when requestedReflect.apply(…)
if available (#99)helpers/floor
: module-cache Math.floor
helpers/getSymbolDescription
: Prefer bound description
getter when present2016
: Use getIteratorMethod
in IterableToArrayLike
(#94)helpers/OwnPropertyKeys
: Use Reflect.ownKeys(…)
if available (#91)2018+
: Fix CopyDataProperties
depending on this
(#95)Type
: fix spec URLES2015
: complete ops listis‑callable
, is‑regex
string.prototype.trimleft
/string.prototype.trimright
to string.prototype.trimstart
/string.prototype.trimend
eslint
, @ljharb/eslint-config
, in-publish
, object-is
, tape
; add aud
helpers/isPropertyDescriptor
: fix indentationhelpers/getSymbolDescription
: add test cases; some envs have Symbol.for
but can not infer a name (#92)undefined
this (#96)CreateDataProperty
: update an existing propertycd75047018
make-arrow-function
, tape
, @ljharb/eslint-config
2015+
: add code to handle IE 8’s problemsObjectCreate
2015+
: Fall back to __proto__
and normal new
in older browsersGetIntrinsic
: ensure the allowMissing
property actually works on dotted intrinsicshelpers/OwnPropertyKeys
: include non-enumerables tooOwnPropertyKeys
helper, use it in CopyDataProperties
IteratorClose
: remove useless assignmenteslint
, tape
, diff
GetIntrinsic
: IE 8 has a broken Object.getOwnPropertyDescriptor
object.assign
is a runtime dep (prereleased)GetIntrinsic
: remove the internal property salts, since % already handles thatGetIntrinsic
: further simplificationis-callable
, string.prototype.trimleft
, string.prototype.trimright
, is-regex
@ljharb/eslint-config
, object-is
, object.fromentries
, tape
.eslintignore
object.assign
is a runtime depGetIntrinsic
: when given a path to a getter, return the actual gettereslint
eslint
GetIntrinsics
: turns out IE 8 throws when Object.getOwnPropertyDescriptor(arguments);
, and does not throw on callee
anywayses-to-primitive
, has-symbols
, object-inspect
eslint
, @ljharb/eslint-config
, safe-publish-latest
operations
funding
fieldcheck-coverage
, and let codecov do itES2015+
: add SetFunctionName
ES2015+
: add GetPrototypeFromConstructor
, with caveatsES2015+
: add CreateListFromArrayLike
ES2016+
: add OrdinarySetPrototypeOf
ES2016+
: add OrdinaryGetPrototypeOf
getSymbolDescription
and getInferredName
helpersGetIterator
: add fallback for pre-Symbol environments, testsobject.fromentries
node
v12.2
ES2018
+: add DateString
, TimeString
ES2015
+: add ToDateString
ES5
+: add msFromTime
, SecFromTime
, MinFromTime
, HourFromTime
, TimeWithinDay
, Day
, DayFromYear
, TimeFromYear
, YearFromTime
, WeekDay
, DaysInYear
, InLeapYear
, DayWithinYear
, MonthFromTime
, DateFromTime
, MakeDay
, MakeDate
, MakeTime
, TimeClip
, modulo
regexTester
helpercallBound
helperisPrefixOf
helpermaxSafeInteger
helperstring.prototype.trimleft
, string.prototype.trimright
eslint
node
v12.11
ES2016
: IterableToArrayLike
: add proper fallback for strings, pre-Symbolsnode
v12.10
ES2017+
: add IterableToList
ES2016
: add IterableToArrayLike
ES2015+
: add ArrayCreate
, ArraySetLength
, OrdinaryDefineOwnProperty
, OrdinaryGetOwnProperty
, OrdinaryHasProperty
, CreateHTML
, GetOwnPropertyKeys
, InstanceofOperator
, SymbolDescriptiveString
, GetSubstitution
, ValidateAndApplyPropertyDescriptor
, IsPromise
, OrdinaryHasInstance
, TestIntegrityLevel
, SetIntegrityLevel
callBind
helper, and use itisPropertyDescriptor
, every
Abstract Relational Comparison
Abstract Equality Comparison
, Strict Equality Comparison
ES2015+
: GetIterator
: only require native Symbols when method
is omittedES2015
: Call
: error message now properly displays Symbols using object-inspect
ES2015+
: ValidateAndApplyPropertyDescriptor
: use ES2017 logic to bypass spec bugsES2015+
: CreateDataProperty
, DefinePropertyOrThrow
, ValidateAndApplyPropertyDescriptor
: add fallbacks for ES3ES2015+
: FromPropertyDescriptor
: no longer requires a fully complete Property DescriptorES5
: IsPropertyDescriptor
: call into IsDataDescriptor
and IsAccessorDescriptor
has-symbols
for Symbol detectionhelpers/assertRecord
: remove console.log
object-keys
eslint
, @ljharb/eslint-config
, safe-publish-latest
, semver
, replace
, cheerio
, tape
node
v12.9
, v11.15
, v10.16
, v8.16
, v6.17
npx aud
only on prod depsnpx aud
instead of npm audit
with hoopseclint
instead of editorconfig-tools
ES2015+
: add thisBooleanValue
, thisNumberValue
, thisStringValue
, thisTimeValue
ES2015+
: add DefinePropertyOrThrow
, DeletePropertyOrThrow
, CreateMethodProperty
assertRecord
helperis-callable
, has
, object-keys
, es-to-primitive
eslint
, @ljharb/eslint-config
, tape
, semver
, safe-publish-latest
, replace
npm audit
instead of nsp
jscs
node
v11.6
, v10.15
, v8.15
, v6.16
values
helpergetOps
to programmatically fetch abstract operation namesGetIntrinsic
entry pointES2015
+: add ObjectCreate
ES2015+
: ensure Math.{abs,floor}
and Function.call
are cachedES2015+
: add iterator abstract opseslint
, nsp
, object.assign
, semver
, tape
node
v9.8
, v8.10
, v6.13
AdvanceStringIndex
eslint
, nsp
node
v9.2
, v8.9
, v6.12
; use nvm install-latest-npm
; pin included builds to LTSes2015+
: add ArraySpeciesCreate
CreateDataProperty
and CreateDataPropertyOrThrow
nsp
, eslint
es2015
+: ToNumber
: provide the proper hint for Date objects (#27)eslint
ToPropertyKey
: should return a symbol for Symbols (#26)function-bind
eslint
, @ljharb/eslint-config
IsPropertyDescriptor
, IsAccessorDescriptor
, IsDataDescriptor
, IsGenericDescriptor
, FromPropertyDescriptor
, ToPropertyDescriptor
CompletePropertyDescriptor
, Set
, HasOwnProperty
, HasProperty
, IsConcatSpreadable
, Invoke
, CreateIterResultObject
, RegExpExec
is-regex
nsp
, eslint
, @ljharb/eslint-config
eslint
, @ljharb/eslint-config
, nsp
, semver
, tape
node
v8.2
, v7.10
, v6.11
, v4.8
; newer npm breaks on older nodenyc
for code coverageGetMethod
(#16)GetV
(#16)Get
(#17)node
v7.4
, v6.9
, v4.6
; improve test matrixtape
, nsp
, eslint
, @ljharb/eslint-config
, safe-publish-latest
class
constructors.Type
SpeciesConstructor
jscs
, nsp
, eslint
, @ljharb/eslint-config
, semver
; add safe-publish-latest
node
v6.4
, v5.12
, v4.5
ES.IsRegExp
: actually look up Symbol.match
on the argumentisNaN
helperis-callable
, function-bind
es-to-primitive
, fix ES5 testsjscs
, eslint
, @ljharb/eslint-config
, tape
, nsp
node
v6.2
, v5.11
, v4.4
Symbol.toPrimitive
support via es-to-primitive
is-callable
, es-to-primitive
jscs
, nsp
, eslint
, @ljharb/eslint-config
, semver
, tape
node
v5.3
ES6.ToNumber
: should give NaN
for explicitly signed hex strings (#4)ES6.ToNumber
: No need to double-trimnode
v0.8
ES.ToNumber
trims whitespace, and does not trim non-whitespace (#3)tape
, jscs
, nsp
, eslint
, @ljharb/eslint-config
node
v5.0
is-callable
tape
, jscs
, eslint
, @ljharb/eslint-config
node
v4.2
SameValueNonNumber
to ES7ES6.IsRegExp
to properly handle Symbol.match
, per spec.io.js
v3.3
, node
v4.1
tape
, jscs
, nsp
, eslint
, @ljharb/eslint-config
, semver
toString
to a binary or octal literal also convert properlyjscs
, eslint
, @ljharb/eslint-config
, tape
io.js
v3.0
ES5.CheckObjectCoercible
and ES6.RequireObjectCoercible
return the value if they don't throw.io.js
versions.eslint
, jscs
, tape
, semver
, covert
, nsp
isFinite
helper.es-to-primitive
for ToPrimitive methods.io.js
versions; allow failures on all but 2 latest node
/io.js
versions.eslint
, editorconfig-tools
, semver
, nsp
node
/iojs
versions now ship with an npm
that understands ^
.iojs-v1.2
.is-callable
instead of an internal function.tape
, jscs
, nsp
, eslint