IndexedDBShim
IndexedDBShim copied to clipboard
RegExp issue in non-ES6 environments
The newer version of globalVars uses a revised RegExp as follows:
(/(iPad|iPhone|iPod).* os 9_/ui).test(navigator.userAgent)
The u (unicode) flag is new for ES6. This new RegExp fails to instantiate in older browsers, causing poorIndexedDbSupport not to be detected in, for example, Safari on IOS 9.
new RegExp("(iPad|iPhone|iPod).* os 9_", "ui")
SyntaxError: Invalid flags supplied to RegExp constructor.
(/(iPad|iPhone|iPod).* os 9_/ui).test(navigator.userAgent)
SyntaxError: Invalid flag supplied to RegExp constructor.
Suggested resolution is to remove the u flag to enable the RegExp to work as expected.
I'd be open to a PR . Note that there are also new RegExp calls with the u flag so any PR should handle them as well.
I would have preferred to use https://babeljs.io/docs/en/babel-plugin-transform-unicode-regex and a Unicode-aware RegExp constructor polyfill, but:
- It might add significant bloat
- core-js at least doesn't seem to have such a polyfill anyways