Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blob, File, FileList #285

Closed
brettz9 opened this issue Feb 15, 2017 · 1 comment
Closed

Blob, File, FileList #285

brettz9 opened this issue Feb 15, 2017 · 1 comment
Assignees
Milestone

Comments

@brettz9
Copy link
Collaborator

brettz9 commented Feb 15, 2017

As raised in #267 , there are problems implementing Blob, File, and FileList although the Structured Cloning Algorithm technically supports them and the support that existed within our past implementation (which had problems in using eval (bad for CSP if not security) and with cyclic values) has been removed for now.

The reason for this is that the spec currently requires throwing errors synchronously upon bad data, but to encounter and thus report errors in retrieving their contents, we'd need to load synchronously (or just inform users that the must forego the chance to get errors reported synchronously as per the spec).

Although we should be able to get around it, our implementation would be cleaner with jsdom/jsdom#1721 .

@brettz9 brettz9 added this to the 4.0.0 milestone Feb 15, 2017
@brettz9 brettz9 self-assigned this Feb 15, 2017
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 15, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 15, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 15, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 15, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 15, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1047 now passing, 81 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (Fake, Mock, QUnit, Mocha): Avoid minimized file for
    now (reports line number in error message)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt/npm): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (Fake, Mock, QUnit, Mocha): Avoid minimized file for
    now (reports line number in error message)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Run non-W3C and old W3C tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt/npm): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (Fake, Mock, QUnit, Mocha): Avoid minimized file for
    now (reports line number in error message)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Fix failing mock test and re-run tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt/npm): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (Fake, Mock, QUnit, Mocha): Avoid minimized file for
    now (reports line number in error message)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
brettz9 added a commit to brettz9/IndexedDBShim that referenced this issue Feb 16, 2017
    - Fix failing mock test and re-run tests, including for browser
    - Report back to close indexeddbshim#267 (noting indexeddbshim#285, 286), indexeddbshim#236, indexeddbshim#211
- Known regression: In switching Sca implementation (avoiding `eval`
   and other improvements), removed (async) capability for
   representing `Blob`s (and `File`/`FileList`?) in values; should
   revisit when fixing other known binary issues; per spec, will need to
   report errors synchronously as possible, so either use deprecated
   sync XHR and disparaged `readFileSync` or give caveat of not
   catching errors for such types on time.
- Possible fix: Avoid problems with `websql` inclusion in Node
    (courtesy Erik Vold)
- Fix regression: re: `null` escaping of values beginning with 0
- Fix: Cause comparisons/storage of arrays to anticipate
     their higher priority over binary (arrays already existing in storage
     will not benefit from this until re-encoded)
- Fix: Improve evaluate key path splitting of identifier algorithm
- Fix: Ensure extraction of key value from value using key path algorithm
   is applied during ignoring of bad indexes of storage and during
   checks for storing operations
- Fix: Clone before checking against key path (`IDBObjectStore`
     (`put`, `add`) and `IDBCursor.update`)
- Fix: Avoid `eval()` in cloning (issue indexeddbshim#211, indexeddbshim#236)
- Fix: Support cyclic values via typeson/typeson-registry (indexeddbshim#267)
- Fix: Better `IDBIndex` (`openCursor`, `openKeyCursor`, `count`,
     `get*`) range validation
- Fix: Disallow invocation of `webkitGetDatabaseNames` on
     `IDBFactory.prototype`
- Fix: Throw synchronously if won't be able to inject into a value (thereby
    avoiding the need to check during the injection); assumes
    PR w3c/IndexedDB#146
- Fix: Make `DataError` message more accurate for cursor key path
     resolution failures
- Fix: Ensure non-numeric/non-finite or `< 1` keys can be stored as
     per spec even though not changing the current number
- Fix: Allow iterables where `sequence<DOMString>` is accepted
    (`IDBDatabase.createObjectStore`, `IDBObjectStore.createIndex`,
    `IDBDatabase.transaction`)
- Fix: Avoid modifying the supplied `createObjectStore` `createOptions`
    object when `keyPath` is `undefined`
- Fix: For `IDBDatabase.transaction`, allow `ToString` to occur on
    iterables
- Fix: Tighten up `DOMException` shim to support legacy constants per
   W3C tests and better follow W3C interface expectations
- Fix: Improve precision of `util.isFile` and have
    `util.isBlob` fail with files but support non-file Blobs
- Fix: When manual rollback fails (in browser/transaction expired), just
    continue abort steps (problem had shown in an old W3C
   test `IDBObjectStore.createIndex.js` with requests after abort
   "Event ordering for ConstraintError on request"
- Optimization: Avoid redundant key->value checks and redundant cloning
- Optimization: Avoid cloning key when already a primitive
- Refactoring (SQL): Quoting columns consistently for SQLite
- Refactoring (SQL): Make SQL-relationship clearer for method names (escaping)
- Refactoring (spec parity): Use same naming/return of methods in spec
- Refactoring (spec parity): Implement `convertKeyToValue` (not in use internally)
- Refactoring (spec parity): Extract steps for storing a record (affecting
     `IDBCursor.update` and `IDBObjectStore`'s `put`/`add`)
- Refactoring (spec parity): Perform auto-increment in spec order (should be of
    no consequence to the user, however)
- Refactoring: Avoid `cyclonejs` dependency (given need for encoding too)
- Testing (Grunt/npm): Add `dev-unicode` and `build-unicode` tasks for browser
- Testing (Fake, Mock, QUnit, Mocha): Avoid minimized file for
    now (reports line number in error message)
- Testing (W3C): Add w3c-blob to W3C testing environment; add empty `File`
    to avoid test non-completion
- Testing (W3C): Tighten up interface set-up in for `DOMStringList`,
    `Event`, `CustomEvent`, `EventTarget`; add in empty `TreeWalker`
- Testing (W3C): Add `exception` tests for `DOMException` constructor
   and constants tests (passing all); also added more `event` tests (now
   failing 5 apparently due to Node bug:
    jsdom/jsdom#1720 (comment) )
- Testing (W3C): Add new W3C tests but exclude recent test addition,
    `idb-binary-key-roundtrip.js` which has an apparent bug:
    web-platform-tests/wpt#4817
(W3C Tests: Out of 1129 tests:
    1049 now passing, 79 failing, 1 Timing out, 0 Not running)
(W3C Tests: 277/312 files without error, 3 files excluded)
@brettz9 brettz9 modified the milestones: 3.0.0, 4.0.0 Mar 7, 2017
@brettz9
Copy link
Collaborator Author

brettz9 commented Mar 29, 2017

This is now fixed in master (at least as long as we still have sync XHR available).

@brettz9 brettz9 closed this as completed Mar 29, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant