1.23.9 / 2025-01-02
- [Refactor] use 
get-proto directly 
- [Refactor] use 
set-proto directly 
- [Refactor] use 
Reflect.setPrototypeOf and dunder-proto in setProto helper 
- [Refactor] 
ES2015+: ArrayCreate: use setProto helper 
- [Deps] update 
es-set-tostringtag, own-keys 
- [Dev Deps] update 
is-core-module 
- [Tests] use 
own-keys directly 
1.23.8 / 2024-12-28
- [Refactor] use 
own-keys 
- [Refactor] use 
safe-push-apply 
1.23.7 / 2024-12-20
- [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 
1.23.6 / 2024-12-15
- [Fix] 
ES2015 - ES2019: IntegerIndexedElementSet: reject BigInt Typed Arrays prior to ES2020 
- [Fix] 
ES2023+: SetTypedArrayFromTypedArray: provide missing cloneConstructor argument to CloneArrayBuffer 
- [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 require Symbol.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 over Type() when possible 
- [Refactor] 
ES2015 - ES2016: GetValueFromBuffer: remove unnecessary extra helper argument 
- [Refactor] misc cleanups
 
- [Refactor] make and use 
isObject helper 
- [Refactor] 
ES5+: MonthFromTime: throw a RangeError for an out of range timestamp 
- [Refactor] use 
+ over Number() 
- [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 
1.23.5 / 2024-11-14
- [Fix] 
ES2015+: CompletionRecord: ensure ? works on any non-abrupt completion 
1.23.4 / 2024-11-12
- [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 from aud 
- [Tests] use 
.assertion instead of monkeypatching tape 
- [Tests] increase coverage
 
1.23.3 / 2024-03-29
- [Fix] 
ES2024: StringPad, StringPaddingBuiltinsImpl: prefer uppercase spec enums 
- [Fix] 
helpers/bytesAsInteger: avoid a crash in node 10.4 - 10.8 
- [Fix] 
ES5: CheckObjectCoercible: restore optMessage optional arg 
- [Refactor] 
ES2022+: update TimeString to use ToZeroPaddedDecimalString 
- [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 
1.23.2 / 2024-03-17
- [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
 
1.23.1 / 2024-03-16
- [Refactor] use 
es-object-atoms 
- [Deps] update 
hasown, which-typed-array, data-view-byte-length, safe-array-concat 
- [Dev Deps] update 
diff 
1.23.0 / 2024-03-04
- [New] add 
ES2024 
- [New] 
ES2015+: add InternalizeJSONProperty 
- [New] 
ES2015+: add IntegerIndexedElement{Get,Set} 
- [New] 
ES2018+: add TimeZoneString 
- [New] 
ES2022+: add DefineMethodProperty 
- [New] 
ES2023: add DefaultTimeZone 
- [Fix] 
ES2023+: SetTypedArrayFrom{TypedArray,ArrayLike}: match engine reality 
- [Fix] 
ES2024+: GetViewByteLength, IsViewOutOfBounds: support engines with only own DV properties 
- [Tests] use 
safe-bigint 
1.22.5 / 2024-02-28
- [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 and glob, 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 for Z() pattern to handle node 10.4 - 10.8 
1.22.4 / 2024-02-13
- [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 over Type(), except for Object, where possible 
- [Refactor] use 
es-errors instead of get-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 
1.22.3 / 2023-10-20
- [Fix] 
ES2015+: GetSubstitution: accept undefined instead of a hole 
- [Refactor] use 
hasown instead of has 
- [Deps] update 
call-bind, get-intrinsic, object-inspect, which-typed-array 
- [Dev Deps] update 
function-bind, is-core-module, mock-property, tape 
1.22.2 / 2023-09-14
- [Fix] 
ES2015+: NewPromiseCapability: use AOs from the current year, not 2022 
- [Refactor] 
ES2021+: SetTypedArrayFromArrayLike: use IsBigIntElementType 
- [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 
1.22.1 / 2023-07-15
- [Deps] add missing 
safe-array-concat dep 
1.22.0 / 2023-07-15
- [New] add 
ES2023 
- [New] 
ES2021+: add SetTypedArrayFromArrayLike, SetTypedArrayFromTypedArray 
- [New] 
ES2021+: add CloneArrayBuffer 
- [New] 
ES2020+: add IsValidIntegerIndex 
- [New] 
ES2015+: add GetValueFromBuffer, SetValueInBuffer 
- [New] 
ES2016+: add TypedArrayCreate, TypedArraySpeciesCreate 
- [New] 
ES2015+: add IsWordChar 
- [New] 
ES2017+ add WordCharacters 
- [New] 
ES2015+: add Canonicalize 
- [New] 
ES2015+: add NewPromiseCapability 
- [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
 
1.21.3 / 2023-07-12
- [Fix] 
ES2017+: RawBytesToNumber, RawBytesToNumeric: properly handle some scenarios 
- [Fix] 
ES2015+: GetV: the receiver is V, not O 
- [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: use SameValue instead of Object.is 
- [Refactor] 
ES2021+: ValidateAtomicAccess: use typed-array-byte-offset 
- [Refactor] 
ES2019+: AddEntriesFromIterable: use ThrowCompletion 
- [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 
1.21.2 / 2023-03-12
- [Fix] 
ES2015+: CreateDataProperty: use OrdinaryDefineOwnProperty 
- [Fix] 
ES2015+: CreateDataProperty: use OrdinaryDefineOwnProperty 
- [Fix] 
ES2015+: GetPrototypeFromConstructor: add missing assertion that intrinsicDefaultProto 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: whenfuncis not callable andP` is a symbol, avoid the wrong TypeError 
- [Fix] 
ES2020+: ToBigInt: properly throw on anything besides string, bigint, boolean 
- [Fix] 
ES2021+: SplitMatch: instead of false, 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: mark IsDataDescriptor and IsAccessorDescriptor as spackled 
- [Refactor] 
ES2015+: IsDetachedBuffer: use array-buffer-byte-length package 
- [Refactor] 
ES2015+: OrdinaryHasInstance: rely on falsiness 
- [Refactor] 
ES2016+: CreateListFromArrayLike: hoist default element types to module level 
- [Refactor] 
ES2022+: StringToNumber, ToNumber: use string.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 
% for callBound 
- [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 
1.21.1 / 2023-01-10
- [Fix] move 
available-typed-arrays to runtime deps 
- [Fix] 
ES2021+: NumberToBigInt: throw the proper error on an env without BigInts 
- [Fix] 
ES2018+: CreateAsyncFromSyncIterator: properly check next method args length 
- [Fix] 
ES2020-ES2021: Abstract Relational Comparison: handle BigInts properly 
- [Fix] 
ES2022+: StringToBigInt: invalid BigInts should be undefined, not NaN 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
 
1.21.0 / 2023-01-04
- [New] 
ES2015+: add IsDetachedBuffer 
- [New] 
ES2015+: add DetachArrayBuffer 
- [New] 
ES2020+: add NumericToRawBytes 
- [New] 
ES2017 - ES2019: add NumberToRawBytes 
- [New] 
ES2020+: add RawBytesToNumeric 
- [New] 
ES2017-ES2019: add RawBytesToNumber 
- [New] 
ES2017+: add ValidateAtomicAccess 
- [New] 
ES2021+: add ValidateIntegerTypedArray 
- [New] 
ES2015+: add ValidateTypedArray 
- [New] 
ES2015+: add GetGlobalObject 
- [New] 
ES2022+: add TypedArrayElementSize, TypedArrayElementType 
- [New] 
ES2015+: add max, min 
- [New] 
helpers/assertRecord: add predicates for PromiseCapability and AsyncGeneratorRequest Records 
- [New] 
ES2018+: add AsyncIteratorClose 
- [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) and ES2020+ (OrdinaryObjectCreate): use internal-slot to support additional slots 
- [New] 
ES2018+: add CreateAsyncFromSyncIterator 
- [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 
1.20.5 / 2022-12-07
- [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 
1.20.4 / 2022-10-06
- [Fix] 
ES2021+: values that truncate to -0 in ToIntegerOrInfinity (#146) 
- [Deps] update 
is-callable 
1.20.3 / 2022-09-22
- [Refactor] extract regex tester to 
safe-regex-test package 
- [Deps] update 
get-intrinsic, is-callable 
- [Dev Deps] update 
aud, tape 
1.20.2 / 2022-09-01
- [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 
1.20.1 / 2022-05-16
- [Fix] 
thisTimeValue: use getTime, not valueOf, to get the time value 
- [Refactor] create 
IsArray helper 
- [Deps] update 
regexp.prototype.flags 
- [Dev Deps] use 
for-each instead of foreach 
1.20.0 / 2022-05-05
- [New] add ES2022
 
- [New] 
ES2015+: add ObjectDefineProperties 
- [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 
1.19.5 / 2022-04-13
- [Fix] 
DefineOwnProperty: FF 4-22 throws an exception when defining length of an array 
- [Dev Deps] update 
@ljharb/eslint-config 
1.19.4 / 2022-04-12
- [Fix] 
ES2015+: CreateDataProperty: a nonwritable but configurable property is still converted to a data property 
1.19.3 / 2022-04-11
- [Fix] 
ES2015+: GetIterator, IterableToArrayLike: in Symbol-less envs, handle boxed string objects 
- [Robustness] use 
exec instead of test, since the latter observably looks up exec 
- [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
 
1.19.2 / 2022-03-28
- [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 for prototype being String.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 https://github.com/tc39/ecma262/issues/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
 
1.19.1 / 2021-10-02
- [Fix] 
ES2020+: CreateRegExpStringIterator: should not have enumerable methods 
- [Dev Deps] update 
array.prototype.filter, array.prototype.indexof 
1.19.0 / 2021-09-30
- [New] 
ES2021+: IterableToList: make method parameter optional (#61) 
- [New] add ES2021
 
- [New] 
ES2020+: add StringToBigInt, ToBigInt, ToBigInt64, ToBigUint64 
- [New] 
ES2017+: add IsSharedArrayBuffer, OrdinaryToPrimitive 
- [New] 
ES2015+: add CharacterRange, IsCompatiblePropertyDescriptor 
- [New] 
ES2020+: add CreateRegExpStringIterator 
- [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)
 
1.18.7 / 2021-09-28
- [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
 
1.18.6 / 2021-09-07
- [Fix] 
ES2020+: NumberToBigInt: throw a SyntaxError when BigInts are not supported 
- [Refactor] extract getSymbolDescription logic to 
get-symbol-description 
- [Refactor] 
ES2018+: AbstractRelationalComparison: use IsStringPrefix 
- [Deps] update 
is-callable, is-regex, is-string 
- [Dev Deps] update 
@ljharb/eslint-config, tape 
- [Tests] 
GetSubstitution: add cases 
1.18.5 / 2021-08-01
- [meta] remove "exports" (#133)
 
- [Dev Deps] update 
eslint 
1.18.4 / 2021-07-29
- [meta] partial revert of 
b54cfe8525 
- [Deps] update 
internal-slot, object-inspect 
- [Dev Deps] update 
eslint, tape 
- [Tests] 
ArraySetLength: increase coverage 
1.18.3 / 2021-05-27
- [Fix] 
ES2020+: ToNumber: ensure it throws on a BigInt (#130) 
1.18.2 / 2021-05-25
- [meta] add 
helpers to "exports" field, for back compat 
1.18.1 / 2021-05-25
- [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 of node/run 
- [actions] update codeql-analysis to new best practices
 
1.18.0 / 2021-03-03
- [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
 
1.18.0-next.3 / 2021-03-01
- [New] 
ES2015: add StringGetIndexProperty 
- [New] 
ES2015+: add RegExpCreate, SplitMatch, StringCreate 
- [New] 
ES2016-ES2019: add UTF16Decode 
- [New] 
ES2020+: add NumberToBigInt 
- [New] 
ES2020+: addBigInt::/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 missing CreateArrayIterator AO 
- [meta] 
ES2015-ES2017: add missing DaylightSavingTA AO 
- [meta] rerun 
npm run spackle to update URLs left after 11d8c8df11 
- [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 for is() 
- [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
 
1.18.0-next.2 / 2021-01-17
- [New] 
helpers: add isByteValue, isCodePoint, some 
- [Fix] 
ES2018+: fix GetSubstitution with named captures 
- [Fix] 
ES2020: GetIterator: add omitted hint parameter 
- [Fix] 
ES2018/ES2019: SetFunctionLength: Infinities should throw 
- [Fix] 
ES2020: ToIndex uses SameValue instead of SameValueZero 
- [Fix] 
ES2020: CopyDataProperties uses CreateDataPropertyOrThrow instead of CreateDataProperty 
- [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 
1.18.0-next.1 / 2020-09-30
- [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
 
1.18.0-next.0 / 2020-08-14
- [New] add 
ES2020 
- [New] 
GetIntrinsic: add %AggregateError%, %FinalizationRegistry%, and %WeakRef% 
- [New] 
ES5+: add abs, floor; use modulo consistently 
- [New] 
GetIntrinsic: Cache accessed intrinsics (#98) 
- [New] 
GetIntrinsic: Add ES201x function intrinsics (#97) 
- [New] 
ES2015+: add QuoteJSONString, OrdinaryCreateFromConstructor 
- [New] 
ES2017+: add StringGetOwnProperty 
- [New] 
ES2016+: add UTF16Encoding 
- [New] 
ES2018+: add SetFunctionLength, 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 
1.17.7 / 2020-09-30
- [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 
1.17.6 / 2020-06-13
- [Fix] 
helpers/getSymbolDescription: use the global Symbol registry when available (#92) 
- [Fix] 
ES2015+: IsConstructor: when Reflect.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-cache Math.floor 
- [Fix] 
helpers/getSymbolDescription: Prefer bound description getter when present 
- [Fix] 
2016: Use getIteratorMethod in IterableToArrayLike (#94) 
- [Fix] 
helpers/OwnPropertyKeys: Use Reflect.ownKeys(…) if available (#91) 
- [Fix] 
2018+: Fix CopyDataProperties depending on this (#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 to string.prototype.trimstart/string.prototype.trimend 
- [Dev Deps] update 
eslint, @ljharb/eslint-config, in-publish, object-is, tape; add aud 
- [eslint] 
helpers/isPropertyDescriptor: fix indentation 
- [Tests] 
helpers/getSymbolDescription: add test cases; some envs have Symbol.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) 
1.17.5 / 2020-03-22
- [Fix] 
CreateDataProperty: update an existing property 
- [Fix] run missing spackle from 
cd75047018 
- [Dev Deps] update 
make-arrow-function, tape, @ljharb/eslint-config 
1.17.4 / 2020-01-21
- [Fix] 
2015+: add code to handle IE 8’s problems 
- [Tests] fix tests for IE 8
 
1.17.3 / 2020-01-19
- [Fix] 
ObjectCreate 2015+: Fall back to __proto__ and normal new in older browsers 
- [Fix] 
GetIntrinsic: ensure the allowMissing property actually works on dotted intrinsics 
1.17.2 / 2020-01-14
- [Fix] 
helpers/OwnPropertyKeys: include non-enumerables too 
1.17.1 / 2020-01-14
- [Refactor] add 
OwnPropertyKeys helper, use it in CopyDataProperties 
- [Refactor] 
IteratorClose: remove useless assignment 
- [Dev Deps] update 
eslint, tape, diff 
1.17.0 / 2019-12-20
- [New] Split up each operation into its own file (prereleased)
 
- [Fix] 
GetIntrinsic: IE 8 has a broken Object.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)
 
1.17.0-next.1 / 2019-12-11
- [Fix] 
object.assign is a runtime dep 
- [meta] only run spackle script in publish (#78)
 
1.17.0-next.0 / 2019-12-11
- [New] Split up each operation into its own file
 
1.16.3 / 2019-12-04
- [Fix] 
GetIntrinsic: when given a path to a getter, return the actual getter 
- [Dev Deps] update 
eslint 
1.16.2 / 2019-11-24
- [Fix] IE 6-7 lack JSON
 
- [Fix] IE 6-8 strings can’t use array slice, they need string slice
 
- [Dev Deps] update 
eslint 
1.16.1 / 2019-11-24
- [Fix] 
GetIntrinsics: turns out IE 8 throws when Object.getOwnPropertyDescriptor(arguments);, and does not throw on callee 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 
1.16.0 / 2019-10-18
- [New] 
ES2015+: add SetFunctionName 
- [New] 
ES2015+: add GetPrototypeFromConstructor, with caveats 
- [New] 
ES2015+: add CreateListFromArrayLike 
- [New] 
ES2016+: add OrdinarySetPrototypeOf 
- [New] 
ES2016+: add OrdinaryGetPrototypeOf 
- [New] add 
getSymbolDescription and getInferredName helpers 
- [Fix] 
GetIterator: add fallback for pre-Symbol environments, tests 
- [Dev Deps] update 
object.fromentries 
- [Tests] add 
node v12.2 
1.15.0 / 2019-10-02
- [New] 
ES2018+: add DateString, TimeString 
- [New] 
ES2015+: add ToDateString 
- [New] 
ES5+: add msFromTime, 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"
 
1.14.2 / 2019-09-08
- [Fix] 
ES2016: IterableToArrayLike: add proper fallback for strings, pre-Symbols 
- [Tests] on 
node v12.10 
1.14.1 / 2019-09-03
- [meta] republish with some extra files removed
 
1.14.0 / 2019-09-02
- [New] add ES2019
 
- [New] 
ES2017+: add IterableToList 
- [New] 
ES2016: add IterableToArrayLike 
- [New] 
ES2015+: add ArrayCreate, 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 when method is omitted 
- [Fix] 
ES2015: Call: error message now properly displays Symbols using object-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 into IsDataDescriptor and IsAccessorDescriptor 
- [Refactor] use 
has-symbols for Symbol detection 
- [Fix] 
helpers/assertRecord: remove console.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 of npm audit with hoops 
- [Tests] use 
eclint instead of editorconfig-tools 
- [Tests] some intrinsic cleanup
 
- [Tests] migrate es5 tests to use values helper
 
- [Tests] add some missing ES2015 ops
 
1.13.0 / 2019-01-02
- [New] add ES2018
 
- [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties
 
- [New] 
ES2015+: add thisBooleanValue, thisNumberValue, thisStringValue, thisTimeValue 
- [New] 
ES2015+: add DefinePropertyOrThrow, 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 of nsp 
- [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 
1.12.0 / 2018-05-31
- [New] add 
GetIntrinsic entry point 
- [New] 
ES2015+: add ObjectCreate 
- [Robustness]: 
ES2015+: ensure Math.{abs,floor} and Function.call are cached 
1.11.0 / 2018-03-21
- [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 
1.10.0 / 2017-11-24
- [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; use nvm install-latest-npm; pin included builds to LTS 
1.9.0 / 2017-09-30
- [New] 
es2015+: add ArraySpeciesCreate 
- [New] ES2015+: add 
CreateDataProperty and CreateDataPropertyOrThrow 
- [Tests] consolidate duplicated tests
 
- [Tests] increase coverage
 
- [Dev Deps] update 
nsp, eslint 
1.8.2 / 2017-09-03
- [Fix] 
es2015+: ToNumber: provide the proper hint for Date objects (#27) 
- [Dev Deps] update 
eslint 
1.8.1 / 2017-08-30
- [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
 
1.8.0 / 2017-08-04
- [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
 
1.7.0 / 2017-01-22
- [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 
1.6.1 / 2016-08-21
- [Fix] ES6: IsConstructor should return true for 
class constructors. 
1.6.0 / 2016-08-20
- [New] ES5 / ES6: add 
Type 
- [New] ES6: 
SpeciesConstructor 
- [Dev Deps] update 
jscs, nsp, eslint, @ljharb/eslint-config, semver; add safe-publish-latest 
- [Tests] up to 
node v6.4, v5.12, v4.5 
1.5.1 / 2016-05-30
- [Fix] 
ES.IsRegExp: actually look up Symbol.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
 
1.5.0 / 2015-12-27
- [New] adds 
Symbol.toPrimitive support via es-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 
1.4.3 / 2015-11-04
- [Fix] 
ES6.ToNumber: should give NaN 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 
1.4.2 / 2015-11-02
- [Fix] ensure 
ES.ToNumber trims whitespace, and does not trim non-whitespace (#3) 
1.4.1 / 2015-10-31
- [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"
 
1.4.0 / 2015-09-26
- [Deps] update 
is-callable 
- [Dev Deps] update 
tape, jscs, eslint, @ljharb/eslint-config 
- [Tests] on 
node v4.2 
- [New] Add 
SameValueNonNumber to ES7 
1.3.2 / 2015-09-26
- [Fix] Fix 
ES6.IsRegExp to properly handle Symbol.match, per spec. 
- [Tests] up to 
io.js v3.3, node v4.1 
- [Dev Deps] update 
tape, jscs, nsp, eslint, @ljharb/eslint-config, semver 
1.3.1 / 2015-08-15
- [Fix] Ensure that objects that 
toString to a binary or octal literal also convert properly 
1.3.0 / 2015-08-15
- [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 
1.2.2 / 2015-07-28
- [Fix] Both 
ES5.CheckObjectCoercible and ES6.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 
1.2.1 / 2015-03-20
1.2.0 / 2015-03-19
- Use 
es-to-primitive for ToPrimitive methods. 
- Test on latest 
io.js versions; allow failures on all but 2 latest node/io.js versions. 
1.1.2 / 2015-03-20
1.1.1 / 2015-03-19
- Fix isPrimitive check for functions
 
- Update 
eslint, editorconfig-tools, semver, nsp 
1.1.0 / 2015-02-17
- Add ES7 export (non-default).
 
- All grade A-supported 
node/iojs versions now ship with an npm that understands ^. 
- Test on 
iojs-v1.2. 
1.0.1 / 2015-01-30
- Use 
is-callable instead of an internal function. 
- Update 
tape, jscs, nsp, eslint 
1.0.0 / 2015-01-10