-
-
Notifications
You must be signed in to change notification settings - Fork 191
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
Comments
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)
This was referenced Feb 16, 2017
This is now fixed in |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
As raised in #267 , there are problems implementing
Blob
,File
, andFileList
although the Structured Cloning Algorithm technically supports them and the support that existed within our past implementation (which had problems in usingeval
(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 .
The text was updated successfully, but these errors were encountered: