Zack Slayton
Zack Slayton
Now that we've migrated to JSBI, we should make it possible for users to build a version of `ion-js` that uses `BigInt`s instead of `JSBI` values.
Currently, `Value.from` converts all JS arrays into `ion.dom.List`s and all `Uint8Array`s into `ion.dom.Blob`s. Users hoping to create `ion.dom.SExpression` or `ion.dom.Clob` have to instantiate them manually, which is much more tedious....
LazyDom
Rather than materializing the complete tree eagerly, allow users to create a `LazyValue` that only parses the input buffer as much as is necessary to satisfy the method call at...
`equals` is intended to provide intuitive value-based comparisons. Right now, any comparison between a DOM `Integer` and any other numeric type (besides `JSBI`) is false. This behavior is appropriate for...
v4.2.0 added support for structs with repeated field names, e.g. ```js { foo: 1, foo: true, foo: bar } ``` To preserve backwards compatibility, existing struct accessor methods (`get`, `fields`)...
Currently, the (not yet released) `.equals()` method for `dom.Value` subclasses is strict by default. It checks for Ion equivalence between the two values being compared. JS values cannot be compared...
`dom.Struct` uses [a `Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy) object to intercept field [`get`s](https://github.com/amzn/ion-js/blob/8dd096495862bf39ae4fea7451dd276a01346303/src/dom/Struct.ts#L55), [`set`s](https://github.com/amzn/ion-js/blob/8dd096495862bf39ae4fea7451dd276a01346303/src/dom/Struct.ts#L51), and [`delete`s](https://github.com/amzn/ion-js/blob/master/src/dom/Struct.ts#L63). It also defines [its own iterator logic](https://github.com/amzn/ion-js/blob/8dd096495862bf39ae4fea7451dd276a01346303/src/dom/Struct.ts#L104-L106) to customize the behavior of `for ... of` loops, guaranteeing that...
`ion-js` has two directories with source code: `src` and `test`. Because it uses `mocha`+`ts-node` for its unit tests, the code in `test` is never actually compiled; `ts-node` interprets it dynamically...
Mocha will occasionally fail `ion-tests/iontestdata/good/equivs/structWhitespace.ion` because it takes longer than 2 seconds to complete. It's impacted by my dev machine's CPU load from other tasks, but 2 seconds is still...
**Status Legend** * ❌ Still a problem * ✅ Fixed |Issue \#|Test(s) affected| Status| |:--:|:--:|:--:| | #441 | `IonTimestampTest` | ❌ | | #442 | `IonTextWriterTest` | ✅ #462 |...