Skip to content

Commit

Permalink
Merge pull request #1098 from zloirock/oculus
Browse files Browse the repository at this point in the history
  • Loading branch information
zloirock committed Jul 24, 2022
2 parents 2771d6f + a6be656 commit 3baacf9
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
@@ -1,6 +1,7 @@
## Changelog
##### Unreleased
- Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://github.com/denoland/deno/releases/tag/v1.24.0)
- Added compat data for Oculus Browser, [#1098](https://github.com/zloirock/core-js/issues/1098)

##### [3.23.5 - 2022.07.18](https://github.com/zloirock/core-js/releases/tag/v3.23.5)
- Fixed a typo in the `structuredClone` feature detection, [#1106](https://github.com/zloirock/core-js/issues/1106)
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Expand Up @@ -40,6 +40,7 @@ engine | mandatory check | how to run tests | base data inherits from
`ie` | features | browser runner | |
`ios` | | browser runner | `safari` | required
`node` | non-ES features | node runner | `chrome` (only ES) | required
`oculus` | | browser runner | `android` (-> `chrome`) | required
`opera` | | browser runner | `chrome` (>12) | in case of inconsistency
`opera_mobile` | | browser runner | `opera`, `chrome` | required
`phantom` | | browser runner | `safari` |
Expand Down
3 changes: 2 additions & 1 deletion packages/core-js-compat/README.md
Expand Up @@ -73,7 +73,8 @@ console.log(targets);
firefox: '15', // Firefox version
ie: '8', // Internet Explorer version
ios: '13.0', // iOS Safari version
node: 'current', // NodeJS version, you could use 'current' for set it to currently used
node: 'current', // NodeJS version, you can use 'current' for set it to currently used
oculus: '5.0', // Oculus Browser version
opera: '12', // Opera version
opera_mobile: '7', // Opera Mobile version
phantom: '1.9', // PhantomJS headless browser version
Expand Down
25 changes: 25 additions & 0 deletions packages/core-js-compat/src/mapping.mjs
Expand Up @@ -190,6 +190,31 @@ export default {
[30, '4.4'],
[33, '4.4.3'],
],
// https://developer.oculus.com/documentation/web/browser-release-notes/
// Need to find another data source since release notes are not available for new versions.
// https://github.com/mdn/browser-compat-data/blob/main/browsers/oculus.json
AndroidToOculus: [
[57, '3.0'],
[61, '4.0'],
[66, '5.0'],
[74, '6.0'],
[77, '7.0'],
[79, '8.0'],
[81, '9.0'],
[83, '10.0'],
[84, '11.0'],
[86, '12.0'],
[87, '13.0'],
[88, '14.0'],
[89, '15.0'],
[91, '16.0'],
[93, '17.0'],
[95, '18.0'],
[96, '19.0'],
[98, '20.0'],
[100, '21.0'],
[102, '22.0'],
],
// https://github.com/mdn/browser-compat-data/blob/main/browsers/safari_ios.json
SafariToIOS: [
['3.0', '1.0'],
Expand Down
1 change: 1 addition & 0 deletions packages/core-js-compat/targets-parser.js
Expand Up @@ -21,6 +21,7 @@ const validTargets = new Set([
'ie',
'ios',
'node',
'oculus',
'opera',
'opera_mobile',
'phantom',
Expand Down
1 change: 1 addition & 0 deletions scripts/build-compat-data.mjs
Expand Up @@ -52,6 +52,7 @@ for (const scope of [data, external]) {
map('ChromeToOperaMobile');
}
map('ChromeToSamsung');
map('AndroidToOculus');
map('SafariToIOS');
map('SafariToPhantom');

Expand Down
3 changes: 3 additions & 0 deletions scripts/check-compat-data-mapping.mjs
Expand Up @@ -40,6 +40,7 @@ const [
[{ v8 }],
electron,
deno,
oculus,
opera,
operaMobile,
ios,
Expand All @@ -48,6 +49,7 @@ const [
getJSON('https://nodejs.org/dist/index.json'),
getJSON('https://raw.githubusercontent.com/Kilian/electron-to-chromium/master/chromium-versions.js', 17, -1),
latestMDN('deno'),
latestMDN('oculus'),
latestMDN('opera'),
latestMDN('opera_android'),
latestMDN('safari_ios'),
Expand All @@ -57,6 +59,7 @@ const [
assert(modernV8ToChrome(v8) <= latest(mapping.ChromeToNode)[0], 'NodeJS');
assert(latest(Object.entries(electron))[0] <= latest(mapping.ChromeToElectron)[0], 'Electron');
assert(modernV8ToChrome(deno.engine) <= latest(mapping.ChromeToDeno)[0], 'Deno');
assert(oculus.engine <= latest(mapping.AndroidToOculus)[0], 'Oculus');
assert(opera.engine - opera.version === 14, 'Opera');
assert(operaMobile.engine <= latest(mapping.ChromeToOperaMobile)[0], 'Opera Mobile');
assert(cmp(coerce(ios.version), '<=', coerce(latest(mapping.SafariToIOS)[1])), 'iOS Safari');
Expand Down
2 changes: 2 additions & 0 deletions tests/compat-tools/targets-parser.mjs
Expand Up @@ -30,6 +30,7 @@ deepStrictEqual(targetsParser({ esmodules: true }), new Map([
['edge', '16'],
['firefox', '60'],
['ios', '10.3'],
['oculus', '4.0'],
['opera', '48'],
['opera_mobile', '45'],
['safari', '10.1'],
Expand Down Expand Up @@ -85,6 +86,7 @@ deepStrictEqual(targetsParser({
['ie', '8'],
['ios', '10.3'],
['node', String(process.versions.node)],
['oculus', '4.0'],
['opera', '48'],
['opera_mobile', '40'],
['safari', '5.1'],
Expand Down
1 change: 1 addition & 0 deletions tests/compat/browsers-runner.js
Expand Up @@ -13,6 +13,7 @@ var engines = [
'ie',
'ios',
'node',
'oculus',
'opera',
'opera_mobile',
'phantom',
Expand Down

0 comments on commit 3baacf9

Please sign in to comment.