- [Refactor] create and use
helpers/isPropertyKey
- [Refactor] add
timeValue
helper, use it - [Deps] update
array-buffer-byte-length
,data-view-buffer
,data-view-byte-length
,data-view-byte-offset
,function.prototype.name
,get-symbol-description
,is-array-buffer
,is-shared-array-buffer
,is-typed-array
,math-intrinsics
,object.assign
,typed-array-buffer
,typed-array-byte-length
,typed-array-byte-offset
,unbox-primitive
,which-typed-array
- [Deps] remove unused dep
- [Dev Deps] update
array.prototype.indexof
,has-bigints
,is-registered-symbol
,safe-bigint
- [Fix]
ES2015
-ES2019
:IntegerIndexedElementSet
: reject BigInt Typed Arrays prior to ES2020 - [Fix]
ES2023
+:SetTypedArrayFromTypedArray
: provide missingcloneConstructor
argument toCloneArrayBuffer
- [Fix]
ES2024
+:FindViaPredicate
: spec enums are uppercase now - [Fix]
ES2017
-ES2019
:SetValueInBuffer
: handle proper number of arguments - [Fix]
ES2015
+:QuoteJSONString
: properly handle surrogates - [Fix]
ES2015
+:TestIntegrityLevel
: properly handle envs without property descriptors - [patch]
ES2018
-ES2023
:thisSymbolValue
: only requireSymbol.prototype.valueOf
for boxed Symbols - [Robustness]
ES2015
-ES2016
:SetValueInBuffer
: salt dictionary keys in case of pre-proto envs - [Refactor] use
math-intrinsics
- [Refactor] use
call-bound
directly - [Refactor]
ES2015
+:GetIterator
: hoist an object to module scope - [Refactor] use
typeof
overType()
when possible - [Refactor]
ES2015
-ES2016
:GetValueFromBuffer
: remove unnecessary extra helper argument - [Refactor] misc cleanups
- [Refactor] make and use
isObject
helper - [Refactor]
ES5
+:MonthFromTime
: throw aRangeError
for an out of range timestamp - [Refactor] use
+
overNumber()
- [Deps] update
arraybuffer.prototype.slice
,call-bind
,es-define-property
,es-to-primitive
,function.prototype.name
,get-intrinsic
,gopd
,has-proto
,has-symbols
,internal-slot
,is-data-view
,is-regex
,is-string
,which-typed-array
,is-weakref
,safe-array-concat
,safe-regex-test
,string.prototype.trim
,string.prototype.trimend
,typed-array-byte-offset
,typed-array-length
- [meta] remove unnecessary unspackles
- [Tests]
isStringOrUndefined
: increase coverage - [Tests] bigint tests are ES2020+ only
- [Dev Deps] update
array.prototype.flatmap
,is-core-module
,is-registered-symbol
- [Fix]
ES2015
+:CompletionRecord
: ensure?
works on any non-abrupt completion
- [Fix]
ES2024
+: Iterator Records can now have non-functions in[[NextMethod]]
- [meta] update spec URL comments
- [Deps] update
globalthis
,object-inspect
,regexp.prototype.flags
- [Dev Deps] update
@ljharb/eslint-config
,@unicode/unicode-15.0.0
,diff
,es-value-fixtures
,is-core-module
,mock-property
,ses
,tape
- [actions] split out node 10-20, and 20+
- [Tests] switch to
npm audit
fromaud
- [Tests] use
.assertion
instead of monkeypatching tape - [Tests] increase coverage
- [Fix]
ES2024
:StringPad
,StringPaddingBuiltinsImpl
: prefer uppercase spec enums - [Fix]
helpers/bytesAsInteger
: avoid a crash in node 10.4 - 10.8 - [Fix]
ES5
:CheckObjectCoercible
: restoreoptMessage
optional arg - [Refactor]
ES2022
+: updateTimeString
to useToZeroPaddedDecimalString
- [Robustness] use cached copies of builtins
- [Deps] update
string.prototype.trimstart
,typed-array-length
- [Dev Deps] update
array.from
,array.prototype.filter
,array.prototype.indexof
,object.fromentries
,safe-bigint
- [Fix]
records/regexp-record
: add optional[[UnicodeSets]]
boolean field - [Fix]
ES2024
+:AddValueToKeyedGroup
: avoid adding matched values twice - [Fix]
ES5
:CheckObjectCoercible
: use the right function name - [Fix]
ES2024
+:AddEntriesFromIterable
,GetIterator
,GroupBy
: properly capitalize spec enums - [Deps] update
string.prototype.trim
,string.prototype.trimend
- [Tests] increase coverage
- [Refactor] use
es-object-atoms
- [Deps] update
hasown
,which-typed-array
,data-view-byte-length
,safe-array-concat
- [Dev Deps] update
diff
- [New] add
ES2024
- [New]
ES2015
+: addInternalizeJSONProperty
- [New]
ES2015
+: addIntegerIndexedElement{Get,Set}
- [New]
ES2018
+: addTimeZoneString
- [New]
ES2022
+: addDefineMethodProperty
- [New]
ES2023
: addDefaultTimeZone
- [Fix]
ES2023
+:SetTypedArrayFrom{TypedArray,ArrayLike}
: match engine reality - [Fix]
ES2024
+:GetViewByteLength
,IsViewOutOfBounds
: support engines with only own DV properties - [Tests] use
safe-bigint
- [Fix]
ES2015
+:DetachArrayBuffer
: node v21.0.0+ structuredClone throws with an already-detached ArrayBuffer - [Fix]
helpers/assertRecord
: partial revert of 87c340d2; unintentional breaking change - [patch] records: fix indentation, improve object checks
- [Refactor] extract TA tables to separate files
- [meta] extract "list spackled files" to separate run-script
- [Deps] update
available-typed-arrays
,es-set-tostringtag
,has-proto
,is-negative-zero
,is-shared-array-buffer
,typed-array-buffer
,typed-array-byte-length
,typed-array-byte-offset
,typed-array-length
- [Dev Deps] update
available-regexp-flags
,tape
- [Dev Deps] pin
jackspeak
andglob
, since v2.1.2+ and v10.3.8+ respectively depend on npm aliases, which kill the install process in npm < 6 - [Tests] use
define-{accessor,data}-property
- [Tests] fix some test cases
- [Tests] use
safeBigInt
forZ()
pattern to handle node 10.4 - 10.8
- [Fix]
ES2017
+:IsDetachedBuffer
: properly allow SABs - [Fix]
ES2022
+:ToBigInt
: properly throw on an unparseable string - [Fix]
ES2015
+:ValidateTypedArray
: proper detachment check and return value - [Fix]
ES2022
+:GetSubstitution
: match updated semantics - [Refactor] prefer
typeof
overType()
, except for Object, where possible - [Refactor] use
es-errors
instead ofget-intrinsic
where possible - [Refactor] use
es-define-property
- [Refactor] records: extract predicates to individual files
- [Refactor]
ES2015
+:Canonicalize
,WordCharacters
: use explicit.json
extension for imports - [Deps] update
array-buffer-byte-length
,arraybuffer.prototype.slice
,available-typed-arrays
,call-bind
,es-set-tostringtag
,get-intrinsic
,get-symbol-description
,has-proper ty-descriptors
,has-property-descriptors
,hasown
,internal-slot
,is-array-buffer
,is-typed-array
,object.assign
,regexp.prototype.flags
,safe-array-concat
,safe-regex-test
,typed-array-buffer
,which-typed-array
- [eslint] remove unused overrides
- [Tests] increase/fix coverage
- [Dev Deps] update
aud
,npmignore
,mock-property
,tape
- [Fix]
ES2015
+:GetSubstitution
: acceptundefined
instead of a hole - [Refactor] use
hasown
instead ofhas
- [Deps] update
call-bind
,get-intrinsic
,object-inspect
,which-typed-array
- [Dev Deps] update
function-bind
,is-core-module
,mock-property
,tape
- [Fix]
ES2015
+:NewPromiseCapability
: use AOs from the current year, not 2022 - [Refactor]
ES2021
+:SetTypedArrayFromArrayLike
: useIsBigIntElementType
- [Refactor] properly name
helpers/typedArrayConstructors
- [Refactor] simplify helpers
- [Deps] update
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
- [actions] update actions
- [Tests] run SES tests on more node versions
- [Dev Deps] update
@unicode/unicode-15.0.0
,array.from
,array.prototype.filter
,array.prototype.flatmap
,array.prototype.indexof
,is-core-module
,object.fromentries
,ses
,tape
- [Deps] add missing
safe-array-concat
dep
- [New] add
ES2023
- [New]
ES2021+
: addSetTypedArrayFromArrayLike
,SetTypedArrayFromTypedArray
- [New]
ES2021
+: addCloneArrayBuffer
- [New]
ES2020
+: addIsValidIntegerIndex
- [New]
ES2015
+: addGetValueFromBuffer
,SetValueInBuffer
- [New]
ES2016
+: addTypedArrayCreate
,TypedArraySpeciesCreate
- [New]
ES2015
+: addIsWordChar
- [New]
ES2017
+ addWordCharacters
- [New]
ES2015
+: addCanonicalize
- [New]
ES2015
+: addNewPromiseCapability
- [Fix]
ES2017+
:NumberToRawBytes
,NumericToRawBytes
: reimplement Float64, fix integer scenarios - [Refactor] add
helpers/isLineTerminator
- [Refactor] add
isInteger
helper, and use it - [Refactor] extract
isStringOrHole
to a helper - [Refactor]
ES2017
+:RawBytesToNumber
,RawBytesToNumeric
: extract common code to helpers - [Refactor] make a
MAX_VALUE
helper - [Tests] fix RawBytesToNumeric tests in node v10.4-10.8
- [Tests] fix buffer test cases in node v10.4-v10.8
- [Fix]
ES2017+
:RawBytesToNumber
,RawBytesToNumeric
: properly handle some scenarios - [Fix]
ES2015
+:GetV
: the receiver isV
, notO
- [Fix]
ES2017
+:RawBytesToNumber
,RawBytesToNumeric
: fix exponent calculation for Float64, improve tests - [Fix]
ES2017
+:RawBytesToNumber
,RawBytesToNumeric
: fix logic, improve tests - [Fix]
ES2019
+:thisTimeValue
: fix spackling - [Robustness]
ES2017
+:NumberToRawBytes
,NumericToRawBytes
: useSameValue
instead ofObject.is
- [Refactor]
ES2021
+:ValidateAtomicAccess
: usetyped-array-byte-offset
- [Refactor]
ES2019
+:AddEntriesFromIterable
: useThrowCompletion
- [patch]
ES2015
+:ObjectDefineProperties
: satisfy TODO - [patch]
ES2015
+:GetV
: improve error message - [patch] fix spec URLs
- [Deps] update
get-intrinsic
,regexp.prototype.flags
,which-typed-array
- [actions] fix permissions
- [Tests] add buffer test case fixtures + tests
- [Tests] skip test that modifies the env in SES
- [Tests] fix regex flags tests for node 20
- [Dev Deps] update
@ljharb/eslint-config
,aud
,available-regexp-flags
,is-core-module
,tape
- [Fix]
ES2015
+:CreateDataProperty
: useOrdinaryDefineOwnProperty
- [Fix]
ES2015
+:CreateDataProperty
: useOrdinaryDefineOwnProperty
- [Fix]
ES2015
+:GetPrototypeFromConstructor
: add missing assertion thatintrinsicDefaultProto
is an object - [Fix]
ES2015
+:IsDetachedBuffer
: ensure a nullish error does not crash - [Fix]
ES2015
+:ToDateString
: properly handle time values that aren’t "now" - [Fix]
ES2015
+:ToUint8Clamp
: avoid an extra observable ToNumber - [Fix]
ES2015
+:
GetMethod: when
funcis not callable and
P` is a symbol, avoid the wrong TypeError - [Fix]
ES2020
+:ToBigInt
: properly throw on anything besides string, bigint, boolean - [Fix]
ES2021
+:SplitMatch
: instead offalse
, return'not-matched'
- [Fix]
helpers/assertRecord
: handle nullish input - [Fix]
helpers/isFullyPopulatedPropertyDescriptor
: handle primitive inputs - [Robustness]
ES5
:ToNumber
: avoid relying on runtime.test
and.replace
- [Refactor]
ES2015
: markIsDataDescriptor
andIsAccessorDescriptor
as spackled - [Refactor]
ES2015
+:IsDetachedBuffer
: usearray-buffer-byte-length
package - [Refactor]
ES2015
+:OrdinaryHasInstance
: rely on falsiness - [Refactor]
ES2016
+:CreateListFromArrayLike
: hoist default element types to module level - [Refactor]
ES2022
+:StringToNumber
,ToNumber
: usestring.prototype.trim
- [patch]
ES2022
+:IsLessThan
: fix a comment - [patch]
ES2022
+:TypedArrayElementSize
,TypedArrayElementType
: throw a SyntaxError with an unknown TA type - [patch]
ES2022
+:IsLessThan
: fix a comment - [patch]
ES2020
+:thisBigIntValue
: throw a SyntaxError, not TypeError, for unsupported features - [patch]
helpers/getIteratorMethod
:String
is always available - [patch] fix commented spec URLs
- [patch] omit
%
forcallBound
- [meta] fix spec URLs
- [meta] fix spackle metadata, comments
- [Deps] update
get-intrinsic
,internal-slot
,is-array-buffer
,object-inspect
- [Deps] move
function-bind
to dev deps - [Tests] String.fromCharCode takes numbers, not strings
- [Tests] use
makeIteratorRecord
helper - [Tests] increase coverage
- [Tests] fix tests that throw a sentinel
- [Dev Deps] update
array.from
,available-regexp-flags
,tape
- [Fix] move
available-typed-arrays
to runtime deps - [Fix]
ES2021
+:NumberToBigInt
: throw the proper error on an env without BigInts - [Fix]
ES2018
+:CreateAsyncFromSyncIterator
: properly checknext
method args length - [Fix]
ES2020
-ES2021
: Abstract Relational Comparison: handle BigInts properly - [Fix]
ES2022
+:StringToBigInt
: invalid BigInts should beundefined
, notNaN
as in previous years - [Fix]
helpers/isFinite
: properly handle BigInt values - [Fix]
ES2020
+:CreateListFromArrayLike
: accept BigInts - [Fix]
ES2019
+:AsyncFromSyncIteratorContinuation
: throw a SyntaxError when > 1 arg is passed - [patch]
ES2020
+:GetIterator
: use SyntaxError for intentionally unsupported - [patch]
ES2015
+:GetPrototypeFromContructor
: use SyntaxError for intentionally unsupported - [patch]
ES2022
+:StringToNumber
: fix non-string assertion failure message - [Deps] update
es-set-tostringtag
,is-array-buffer
- [Tests] increase coverage
- [Tests] exclude coverage from files that have been replaced by an extracted package
- [New]
ES2015
+: addIsDetachedBuffer
- [New]
ES2015+
: addDetachArrayBuffer
- [New]
ES2020
+: addNumericToRawBytes
- [New]
ES2017
-ES2019
: addNumberToRawBytes
- [New]
ES2020+
: addRawBytesToNumeric
- [New]
ES2017-ES2019
: addRawBytesToNumber
- [New]
ES2017
+: addValidateAtomicAccess
- [New]
ES2021
+: addValidateIntegerTypedArray
- [New]
ES2015
+: addValidateTypedArray
- [New]
ES2015
+: addGetGlobalObject
- [New]
ES2022
+: addTypedArrayElementSize
,TypedArrayElementType
- [New]
ES2015
+: addmax
,min
- [New]
helpers/assertRecord
: add predicates for PromiseCapability and AsyncGeneratorRequest Records - [New]
ES2018
+: addAsyncIteratorClose
- [New]
ES2015
+:IteratorClose
: also accept a Completion Record instance instead of a completion thunk - [New]
ES2015
+ (CompletionRecord, NormalCompletion),ES2018
+ (ThrowCompletion): add new AOs - [New]
ES2015
+ (ObjectCreate
) andES2020
+ (OrdinaryObjectCreate
): useinternal-slot
to support additional slots - [New]
ES2018
+: addCreateAsyncFromSyncIterator
- [patch]
ES2015
+:GetMethod
: better failure message - [Refactor] use
es-set-tostringtag
package - [Refactor] use
has-proto
package - [Deps] update
has-proto
,es-set-tostringtag
,internal-slot
- [meta] fix spackle script to
git add
after all writing is done - [meta] autogenerate esX entry points
- [meta] use a leading slash in gitattributes for proper spackle matching
- [Tests] fix comments on missing AOs
- [Tests] filter out host-defined AOs
- [Dev Deps] update
@ljharb/eslint-config
,aud
- [Fix]
ES2020+
:floor
: make it work with BigInts as well - [Refactor] use
gopd
- [Tests] add
mod
helper tests (#147) - [Deps] update
string.prototype.trimend
,string.prototype.trimstart
- [Dev Deps] update
array.prototype.filter
,array.prototype.flatmap
,array.prototype.indexof
,object.fromentries
- [Fix]
ES2021+
: values that truncate to -0 inToIntegerOrInfinity
(#146) - [Deps] update
is-callable
- [Refactor] extract regex tester to
safe-regex-test
package - [Deps] update
get-intrinsic
,is-callable
- [Dev Deps] update
aud
,tape
- [Fix]
ES2020+
:SameValueNonNumeric
: properly throw on BigInt values - [Deps] update
object.assign
,get-intrinsic
,object-inspect
- [Dev Deps] update
array.prototype.indexof
,diff
,es-value-fixtures
,tape
- [meta]
spackle
: always mkdirp new files to be written - [Tests] fix vscode auto-const from 8fc256d
- [Fix]
thisTimeValue
: usegetTime
, notvalueOf
, to get the time value - [Refactor] create
IsArray
helper - [Deps] update
regexp.prototype.flags
- [Dev Deps] use
for-each
instead offoreach
- [New] add ES2022
- [New]
ES2015+
: addObjectDefineProperties
- [Refactor] create
fromPropertyDescriptor
helper - [Refactor] use
has-property-descriptors
- [Deps] update
string.prototype.trimend
,string.prototype.trimstart
,unbox-primitive
- [meta] use
npmignore
to autogenerate an npmignore file - [Dev Deps] update
es-value-fixtures
,has-bigints
,functions-have-names
- [Tests] copy GetIntrinsic tests over from
get-intrinsic
- [Fix]
DefineOwnProperty
: FF 4-22 throws an exception when defining length of an array - [Dev Deps] update
@ljharb/eslint-config
- [Fix]
ES2015+
:CreateDataProperty
: a nonwritable but configurable property is still converted to a data property
- [Fix]
ES2015+
:GetIterator
,IterableToArrayLike
: in Symbol-less envs, handle boxed string objects - [Robustness] use
exec
instead oftest
, since the latter observably looks upexec
- [Deps] update
is-shared-array-buffer
- [actions] restrict permissions
- [Dev Deps] update
tape
- [Tests] add test coverage
- [Tests] avoid a bug in node v4.0 with bound function names
- [Fix]
ES2018+
:EnumerableOwnPropertyNames
,ToIntegerOrInfinity
,UTF16SurrogatePairToCodePoint
: proper function names - [Fix]
ES2015+
:GetOwnPropertyKeys
/IsExtensible
/{Set,Test}IntegrityLevel
: avoid a crash in IE 8 on missing ES5 intrinsics - [Fix]
helpers/DefineOwnProperty
: avoid a crash in IE 8 - [Fix]
ES2015+
:StringCreate
: properly check forprototype
beingString.prototype
- [Docs]
ES2015+
:GetV
: Fix spec URL - [meta] operations: use a URL object instead of a URL string
- [meta] remove defunct greenkeeper config
- [meta] better
eccheck
command; fix indentation - [Tests] node v0.6 lacks
RegExp.prototype.source
- [Tests] remove a stray
console.log
- [Tests] properly set the lastIndex in IE 8
- [Tests] skip test due to IE 6-8 sparse/undefined bug
- [Tests] in IE 8, an empty regex is `` and not
(?:)
- [Tests] ES3 engines don’t have
.bind
- [Tests] avoid needless failures in ES3 engines that don't support descriptors
- [Tests] add test to cover tc39/ecma262#2611
- [Deps] update
has-symbols
,is-negative-zero
,is-weakref
,object-inspect
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,object.fromentries
,safe-publish-latest
,tape
- [actions] reuse common workflows
- [actions] update codecov uploader
- [Fix]
ES2020+
:CreateRegExpStringIterator
: should not have enumerable methods - [Dev Deps] update
array.prototype.filter
,array.prototype.indexof
- [New]
ES2021+
:IterableToList
: makemethod
parameter optional (#61) - [New] add ES2021
- [New]
ES2020+
: addStringToBigInt
,ToBigInt
,ToBigInt64
,ToBigUint64
- [New]
ES2017
+: addIsSharedArrayBuffer
,OrdinaryToPrimitive
- [New]
ES2015+
: addCharacterRange
,IsCompatiblePropertyDescriptor
- [New]
ES2020+
: addCreateRegExpStringIterator
- [Fix]
ES2020+
:ToBigInt64
/ToBigUint64
: avoid node v10.4-v10.8 bug with limited BigInt range - [Fix]
ES2020+
:AbstractRelationalComparison
,AbstractEqualityComparison
: support BigInt - [Fix]
ES2020+
:ToBigInt64
/ToBigUint64
: Improve the definitions of twoSixtyThree and twoSixtyFour (#140) - [meta] do not publish .gitattributes
- [Tests] Correct the behavior of
safeBigInt
- [Tests] Exclude dotfiles from the testing sweep (#141)
- [Fix]
getOwnPropertyDescriptor
helper: avoid crashing in IE < 9 - [Fix]
ArraySetLength
:node
v0.6
has a bug where array lengths can be Set but not Defined - [eslint] remove unused directive
- [Tests] fix spelling
- [Fix]
ES2020+
:NumberToBigInt
: throw a SyntaxError when BigInts are not supported - [Refactor] extract getSymbolDescription logic to
get-symbol-description
- [Refactor]
ES2018+
:AbstractRelationalComparison
: useIsStringPrefix
- [Deps] update
is-callable
,is-regex
,is-string
- [Dev Deps] update
@ljharb/eslint-config
,tape
- [Tests]
GetSubstitution
: add cases
- [meta] remove "exports" (#133)
- [Dev Deps] update
eslint
- [meta] partial revert of b54cfe8525faff482450e843a49d43be3a086225
- [Deps] update
internal-slot
,object-inspect
- [Dev Deps] update
eslint
,tape
- [Tests]
ArraySetLength
: increase coverage
- [Fix]
ES2020+
:ToNumber
: ensure it throws on a BigInt (#130)
- [meta] add
helpers
to "exports" field, for back compat
- [readme] update and clarify entry points
- [meta] add "exports" field, with escape hatch
- [meta] add
sideEffects
field - [meta] use
prepublishOnly
, for npm 7+ - [eslint] clean up eslint rules
- [Deps] update
is-regex
,is-string
,object-inspect
,unbox-primitive
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,aud
,tape
- [actions] disable fail-fast on matrix jobs
- [actions] use
node/install
action instead ofnode/run
- [actions] update codeql-analysis to new best practices
- [New] add
ES2020
, and a number of additional AOs: See the changelog entries for the prereleases for more information: - [Refactor]
ES5+
:Abstract Relational Comparison
: increase coverage - [Tests] increase coverage
- [Tests] do not run coverage on node 0.6
- [New]
ES2015
: addStringGetIndexProperty
- [New]
ES2015+
: addRegExpCreate
,SplitMatch
,StringCreate
- [New]
ES2016-ES2019
: addUTF16Decode
- [New]
ES2020+
: addNumberToBigInt
- [New]
ES2020+: add
BigInt::/
Number::` methods: - [Fix]
ES5
:ToNumber
: properly refuse to parse ES6+ forms - [Fix]
ES2015+
:Invoke
: optional argumentsList must be a List of arguments, not a list of arguments - [Fix]
ES2016+
:UTF16Encoding
: properly return a string code point instead of a numeric code point - [Fix]
ES2020
:NumberBitwiseOp
: assert that x and y are Numbers - [readme] remove travis/testling badge, fix repo URLs
- [meta]
ES2015
: add missingCreateArrayIterator
AO - [meta]
ES2015-ES2017
: add missingDaylightSavingTA
AO - [meta] rerun
npm run spackle
to update URLs left after 11d8c8df11c0d15d094a6035afed662e22b440ef - [meta] update ecma URLs
- [meta] unignore 2020 operations list
- [meta] update operations scripts linting
- [meta] refactor getOps script to fetch all years at once
- [meta] refactor operations script to keep years in one place
- [meta] fix ES2015 spec URL
- [Deps] update
has-symbols
,string.prototype.trimend
,string.prototype.trimstart
,get-intrinsic
,is-callable
,is-regex
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,array.prototype.indexof
,aud
,es-value-fixtures
,object.fromentries
,tape
,diff
- [operations] detect ES2020+ style
T::
numeric operations - [Tests] increase coverage
- [Tests]
BigInt(1e17)
throws on node v10.4-v10.6 - [Tests] improve coverage on
Number::
methods - [Tests]
tape
v5.equal
now uses strict equality, so no more need foris()
- [Tests] improve BigInt:: and Number:: coverage
- [Tests] actually run all the helpers tests
- [Tests] ensure "expected missing" ops list is accurate
- [Tests] abstract away per-operation skips
- [Tests] skip BigInt:: tests on envs without BigInts
- [Tests] use
es-value-fixtures
- [actions] update workflows
- [New]
helpers
: addisByteValue
,isCodePoint
,some
- [Fix]
ES2018+
: fixGetSubstitution
with named captures - [Fix]
ES2020
:GetIterator
: add omittedhint
parameter - [Fix]
ES2018
/ES2019
:SetFunctionLength
: Infinities should throw - [Fix]
ES2020
:ToIndex
usesSameValue
instead ofSameValueZero
- [Fix]
ES2020
:CopyDataProperties
usesCreateDataPropertyOrThrow
instead ofCreateDataProperty
- [Refactor] use extracted
call-bind
instead of local helpers - [Refactor] use extracted
get-intrinsic
package - [Deps] update
call-bind
,get-intrinsic
,is-callable
,is-negative-zero
,is-regex
,object-inspect
,object.assign
,string.prototype.trimend
,string.prototype.trimstart
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,array.prototype.indexof
,aud
,diff
,functions-have-names
,has-bigints
,has-strict-mode
,object-is
,object.fromentries
,tape
- [actions] switch Automatic Rebase workflow to
pull_request_target
event - [actions] add "Allow Edits" workflow
- [meta] pin cheerio to v1.0.0-rc.3, to fix getOps
- [meta] make all URLs consistent, and point to spec artifacts
- [meta] refactor
deltas
script; update eslint on operations scripts - [meta] do not publish .github dir (#123)
- [Tests] add
v.notNonNegativeIntegers
,v.nonConstructorFunctions
- [Tests] migrate tests to Github Actions
- [Tests] run coverage on all tests
- [Tests] add
npm run test:ses
- [Fix]
ES2020
:ToInteger
:-0
should always be normalized to+0
(#116) - [patch]
GetIntrinsic
: Adapt to override-mistake-fix pattern (#115) - [Fix]
callBind
: ensure compatibility with SES - [Deps] update
is-callable
,object.assign
- [Dev Deps] update
eslint
,@ljharb/eslint-config
- [eslint] fix warning
- [Tests] temporarily allow SES tests to fail (#115)
- [Tests] ses-compat - initialize module after ses lockdown (#113)
- [Tests] [Refactor] use defineProperty helper rather than assignment
- [Tests] [Refactor] clean up defineProperty test helper
- [New] add
ES2020
- [New]
GetIntrinsic
: add%AggregateError%
,%FinalizationRegistry%
, and%WeakRef%
- [New]
ES5
+: addabs
,floor
; usemodulo
consistently - [New]
GetIntrinsic
: Cache accessed intrinsics (#98) - [New]
GetIntrinsic
: Add ES201x function intrinsics (#97) - [New]
ES2015
+: addQuoteJSONString
,OrdinaryCreateFromConstructor
- [New]
ES2017
+: addStringGetOwnProperty
- [New]
ES2016
+: addUTF16Encoding
- [New]
ES2018
+: addSetFunctionLength
,UnicodeEscape
- [New] add
isLeadingSurrogate
/isTrailingSurrogate
helpers - [Fix]
ES5
+:ToPropertyDescriptor
: use intrinsic TypeError - [Fix]
ES2018+
:CopyDataProperties
/NumberToString
: use intrinsic TypeError - [Deps] update
is-regex
,object-inspect
- [Dev Deps] update
eslint
- [Fix]
ES2020
:ToInteger
:-0
should always be normalized to+0
(#116) - [patch]
GetIntrinsic
: Adapt to override-mistake-fix pattern (#115) - [Fix]
callBind
: ensure compatibility with SES - [Deps] update
is-callable
,is-regex
,object-inspect
,object.assign
- [Dev Deps] update
eslint
,@ljharb/eslint-config
- [Fix]
helpers/getSymbolDescription
: use the global Symbol registry when available (#92) - [Fix]
ES2015+
:IsConstructor
: whenReflect.construct
is available, be spec-accurate (#93) - [Fix]
ES2015+
:Set
: Always return boolean value (#101) - [Fix]
ES2015+
:Set
: ensure exceptions are thrown in IE 9 when requested - [Fix] Use
Reflect.apply(…)
if available (#99) - [Fix]
helpers/floor
: module-cacheMath.floor
- [Fix]
helpers/getSymbolDescription
: Prefer bounddescription
getter when present - [Fix]
2016
: UsegetIteratorMethod
inIterableToArrayLike
(#94) - [Fix]
helpers/OwnPropertyKeys
: UseReflect.ownKeys(…)
if available (#91) - [Fix]
2018+
: FixCopyDataProperties
depending onthis
(#95) - [meta] mark spackled files as autogenerated
- [meta]
Type
: fix spec URL - [meta]
ES2015
: complete ops list - [Deps] update
is‑callable
,is‑regex
- [Deps] switch from
string.prototype.trimleft
/string.prototype.trimright
tostring.prototype.trimstart
/string.prototype.trimend
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,in-publish
,object-is
,tape
; addaud
- [eslint]
helpers/isPropertyDescriptor
: fix indentation - [Tests]
helpers/getSymbolDescription
: add test cases; some envs haveSymbol.for
but can not infer a name (#92) - [Tests] try out CodeQL analysis
- [Tests] reformat expected missing ops
- [Tests] Run tests with
undefined
this (#96)
- [Fix]
CreateDataProperty
: update an existing property - [Fix] run missing spackle from cd7504701879ddea0f5981e99cbcf93bfea9171d
- [Dev Deps] update
make-arrow-function
,tape
,@ljharb/eslint-config
- [Fix]
2015+
: add code to handle IE 8’s problems - [Tests] fix tests for IE 8
- [Fix]
ObjectCreate
2015+
: Fall back to__proto__
and normalnew
in older browsers - [Fix]
GetIntrinsic
: ensure theallowMissing
property actually works on dotted intrinsics
- [Fix]
helpers/OwnPropertyKeys
: include non-enumerables too
- [Refactor] add
OwnPropertyKeys
helper, use it inCopyDataProperties
- [Refactor]
IteratorClose
: remove useless assignment - [Dev Deps] update
eslint
,tape
,diff
- [New] Split up each operation into its own file (prereleased)
- [Fix]
GetIntrinsic
: IE 8 has a brokenObject.getOwnPropertyDescriptor
- [Fix]
object.assign
is a runtime dep (prereleased) - [Refactor]
GetIntrinsic
: remove the internal property salts, since % already handles that - [Refactor]
GetIntrinsic
: further simplification - [Deps] update
is-callable
,string.prototype.trimleft
,string.prototype.trimright
,is-regex
- [Dev Deps] update
@ljharb/eslint-config
,object-is
,object.fromentries
,tape
- [Tests] add
.eslintignore
- [meta] remove unused Makefile and associated utils
- [meta] only run spackle script in publish (#78) (prereleased)
- [Fix]
object.assign
is a runtime dep - [meta] only run spackle script in publish (#78)
- [New] Split up each operation into its own file
- [Fix]
GetIntrinsic
: when given a path to a getter, return the actual getter - [Dev Deps] update
eslint
- [Fix] IE 6-7 lack JSON
- [Fix] IE 6-8 strings can’t use array slice, they need string slice
- [Dev Deps] update
eslint
- [Fix]
GetIntrinsics
: turns out IE 8 throws whenObject.getOwnPropertyDescriptor(arguments);
, and does not throw oncallee
anyways - [Deps] update
es-to-primitive
,has-symbols
,object-inspect
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,safe-publish-latest
- [meta] re-include year files inside
operations
- [meta] add
funding
field - [actions] add Automatic Rebase github action
- [Tests] use shared travis-ci config
- [Tests] disable
check-coverage
, and let codecov do it
- [New]
ES2015+
: addSetFunctionName
- [New]
ES2015+
: addGetPrototypeFromConstructor
, with caveats - [New]
ES2015+
: addCreateListFromArrayLike
- [New]
ES2016+
: addOrdinarySetPrototypeOf
- [New]
ES2016+
: addOrdinaryGetPrototypeOf
- [New] add
getSymbolDescription
andgetInferredName
helpers - [Fix]
GetIterator
: add fallback for pre-Symbol environments, tests - [Dev Deps] update
object.fromentries
- [Tests] add
node
v12.2
- [New]
ES2018
+: addDateString
,TimeString
- [New]
ES2015
+: addToDateString
- [New]
ES5
+: addmsFromTime
,SecFromTime
,MinFromTime
,HourFromTime
,TimeWithinDay
,Day
,DayFromYear
,TimeFromYear
,YearFromTime
,WeekDay
,DaysInYear
,InLeapYear
,DayWithinYear
,MonthFromTime
,DateFromTime
,MakeDay
,MakeDate
,MakeTime
,TimeClip
,modulo
- [New] add
regexTester
helper - [New] add
callBound
helper - [New] add ES2020’s intrinsic dot notation
- [New] add
isPrefixOf
helper - [New] add
maxSafeInteger
helper - [Deps] update
string.prototype.trimleft
,string.prototype.trimright
- [Dev Deps] update
eslint
- [Tests] on
node
v12.11
- [meta] npmignore operations scripts; add "deltas"
- [Fix]
ES2016
:IterableToArrayLike
: add proper fallback for strings, pre-Symbols - [Tests] on
node
v12.10
- [meta] republish with some extra files removed
- [New] add ES2019
- [New]
ES2017+
: addIterableToList
- [New]
ES2016
: addIterableToArrayLike
- [New]
ES2015+
: addArrayCreate
,ArraySetLength
,OrdinaryDefineOwnProperty
,OrdinaryGetOwnProperty
,OrdinaryHasProperty
,CreateHTML
,GetOwnPropertyKeys
,InstanceofOperator
,SymbolDescriptiveString
,GetSubstitution
,ValidateAndApplyPropertyDescriptor
,IsPromise
,OrdinaryHasInstance
,TestIntegrityLevel
,SetIntegrityLevel
- [New] add
callBind
helper, and use it - [New] add helpers:
isPropertyDescriptor
,every
- [New] ES5+: add
Abstract Relational Comparison
- [New] ES5+: add
Abstract Equality Comparison
,Strict Equality Comparison
- [Fix]
ES2015+
:GetIterator
: only require native Symbols whenmethod
is omitted - [Fix]
ES2015
:Call
: error message now properly displays Symbols usingobject-inspect
- [Fix]
ES2015+
:ValidateAndApplyPropertyDescriptor
: use ES2017 logic to bypass spec bugs - [Fix]
ES2015+
:CreateDataProperty
,DefinePropertyOrThrow
,ValidateAndApplyPropertyDescriptor
: add fallbacks for ES3 - [Fix]
ES2015+
:FromPropertyDescriptor
: no longer requires a fully complete Property Descriptor - [Fix]
ES5
:IsPropertyDescriptor
: call intoIsDataDescriptor
andIsAccessorDescriptor
- [Refactor] use
has-symbols
for Symbol detection - [Fix]
helpers/assertRecord
: removeconsole.log
- [Deps] update
object-keys
- [readme] add security note
- [meta] change http URLs to https
- [meta] linter cleanup
- [meta] fix getOps script
- [meta] add FUNDING.yml
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,safe-publish-latest
,semver
,replace
,cheerio
,tape
- [Tests] up to
node
v12.9
,v11.15
,v10.16
,v8.16
,v6.17
- [Tests] temporarily allow node 0.6 to fail; segfaulting in travis
- [Tests] use the values helper more in es5 tests
- [Tests] fix linting to apply to all files
- [Tests] run
npx aud
only on prod deps - [Tests] add v.descriptors helpers
- [Tests] use
npx aud
instead ofnpm audit
with hoops - [Tests] use
eclint
instead ofeditorconfig-tools
- [Tests] some intrinsic cleanup
- [Tests] migrate es5 tests to use values helper
- [Tests] add some missing ES2015 ops
- [New] add ES2018
- [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties
- [New]
ES2015+
: addthisBooleanValue
,thisNumberValue
,thisStringValue
,thisTimeValue
- [New]
ES2015+
: addDefinePropertyOrThrow
,DeletePropertyOrThrow
,CreateMethodProperty
- [New] add
assertRecord
helper - [Deps] update
is-callable
,has
,object-keys
,es-to-primitive
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,tape
,semver
,safe-publish-latest
,replace
- [Tests] use
npm audit
instead ofnsp
- [Tests] remove
jscs
- [Tests] up to
node
v11.6
,v10.15
,v8.15
,v6.16
- [Tests] move descriptor factories to
values
helper - [Tests] add
getOps
to programmatically fetch abstract operation names
- [New] add
GetIntrinsic
entry point - [New]
ES2015
+: addObjectCreate
- [Robustness]:
ES2015+
: ensureMath.{abs,floor}
andFunction.call
are cached
- [New]
ES2015+
: add iterator abstract ops - [Dev Deps] update
eslint
,nsp
,object.assign
,semver
,tape
- [Tests] up to
node
v9.8
,v8.10
,v6.13
- [New] ES2015+:
AdvanceStringIndex
- [Dev Deps] update
eslint
,nsp
- [Tests] require node 0.6 to pass again
- [Tests] up to
node
v9.2
,v8.9
,v6.12
; usenvm install-latest-npm
; pin included builds to LTS
- [New]
es2015+
: addArraySpeciesCreate
- [New] ES2015+: add
CreateDataProperty
andCreateDataPropertyOrThrow
- [Tests] consolidate duplicated tests
- [Tests] increase coverage
- [Dev Deps] update
nsp
,eslint
- [Fix]
es2015
+:ToNumber
: provide the proper hint for Date objects (#27) - [Dev Deps] update
eslint
- [Fix] ES2015+:
ToPropertyKey
: should return a symbol for Symbols (#26) - [Deps] update
function-bind
- [Dev Deps] update
eslint
,@ljharb/eslint-config
- [Docs] github broke markdown parsing
- [New] add ES2017
- [New] move es6+ to es2015+; leave es6/es7 as aliases
- [New] ES5+: add
IsPropertyDescriptor
,IsAccessorDescriptor
,IsDataDescriptor
,IsGenericDescriptor
,FromPropertyDescriptor
,ToPropertyDescriptor
- [New] ES2015+: add
CompletePropertyDescriptor
,Set
,HasOwnProperty
,HasProperty
,IsConcatSpreadable
,Invoke
,CreateIterResultObject
,RegExpExec
- [Fix] es7/es2016: do not mutate ES6
- [Fix] assign helper only supports one source
- [Deps] update
is-regex
- [Dev Deps] update
nsp
,eslint
,@ljharb/eslint-config
- [Dev Deps] update
eslint
,@ljharb/eslint-config
,nsp
,semver
,tape
- [Tests] add tests for missing and excess operations
- [Tests] add codecov for coverage
- [Tests] up to
node
v8.2
,v7.10
,v6.11
,v4.8
; newer npm breaks on older node - [Tests] use same lists of value types across tests; ensure tests are the same when ops are the same
- [Tests] ES2015: add ToNumber symbol tests
- [Tests] switch to
nyc
for code coverage - [Tests] make IsRegExp tests consistent across editions
- [New] ES6: Add
GetMethod
(#16) - [New] ES6: Add
GetV
(#16) - [New] ES6: Add
Get
(#17) - [Tests] up to
node
v7.4
,v6.9
,v4.6
; improve test matrix - [Dev Deps] update
tape
,nsp
,eslint
,@ljharb/eslint-config
,safe-publish-latest
- [Fix] ES6: IsConstructor should return true for
class
constructors.
- [New] ES5 / ES6: add
Type
- [New] ES6:
SpeciesConstructor
- [Dev Deps] update
jscs
,nsp
,eslint
,@ljharb/eslint-config
,semver
; addsafe-publish-latest
- [Tests] up to
node
v6.4
,v5.12
,v4.5
- [Fix]
ES.IsRegExp
: actually look upSymbol.match
on the argument - [Refactor] create
isNaN
helper - [Deps] update
is-callable
,function-bind
- [Deps] update
es-to-primitive
, fix ES5 tests - [Dev Deps] update
jscs
,eslint
,@ljharb/eslint-config
,tape
,nsp
- [Tests] up to
node
v6.2
,v5.11
,v4.4
- [Tests] use pretest/posttest for linting/security
- [New] adds
Symbol.toPrimitive
support viaes-to-primitive
- [Deps] update
is-callable
,es-to-primitive
- [Dev Deps] update
jscs
,nsp
,eslint
,@ljharb/eslint-config
,semver
,tape
- [Tests] up to
node
v5.3
- [Fix]
ES6.ToNumber
: should giveNaN
for explicitly signed hex strings (#4) - [Refactor]
ES6.ToNumber
: No need to double-trim - [Refactor] group tests better
- [Tests] should still pass on
node
v0.8
- [Fix] ensure
ES.ToNumber
trims whitespace, and does not trim non-whitespace (#3)
- [Fix] ensure only 0-1 are valid binary and 0-7 are valid octal digits (#2)
- [Dev Deps] update
tape
,jscs
,nsp
,eslint
,@ljharb/eslint-config
- [Tests] on
node
v5.0
- [Tests] fix npm upgrades for older node versions
- package.json: use object form of "authors", add "contributors"
- [Deps] update
is-callable
- [Dev Deps] update
tape
,jscs
,eslint
,@ljharb/eslint-config
- [Tests] on
node
v4.2
- [New] Add
SameValueNonNumber
to ES7
- [Fix] Fix
ES6.IsRegExp
to properly handleSymbol.match
, per spec. - [Tests] up to
io.js
v3.3
,node
v4.1
- [Dev Deps] update
tape
,jscs
,nsp
,eslint
,@ljharb/eslint-config
,semver
- [Fix] Ensure that objects that
toString
to a binary or octal literal also convert properly
- [New] ES6’s ToNumber now supports binary and octal literals.
- [Dev Deps] update
jscs
,eslint
,@ljharb/eslint-config
,tape
- [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- [Tests] up to
io.js
v3.0
- [Fix] Both
ES5.CheckObjectCoercible
andES6.RequireObjectCoercible
return the value if they don't throw. - [Tests] Test on latest
io.js
versions. - [Dev Deps] Update
eslint
,jscs
,tape
,semver
,covert
,nsp
- Fix
isFinite
helper.
- Use
es-to-primitive
for ToPrimitive methods. - Test on latest
io.js
versions; allow failures on all but 2 latestnode
/io.js
versions.
- Fix isFinite helper.
- Fix isPrimitive check for functions
- Update
eslint
,editorconfig-tools
,semver
,nsp
- Add ES7 export (non-default).
- All grade A-supported
node
/iojs
versions now ship with annpm
that understands^
. - Test on
iojs-v1.2
.
- Use
is-callable
instead of an internal function. - Update
tape
,jscs
,nsp
,eslint
- v1.0.0