This repository was archived by the owner on Jul 21, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 54
This repository was archived by the owner on Jul 21, 2021. It is now read-only.
Build collections of features by interest #60
Copy link
Copy link
Open
Labels
Description
Put a lens on the platform status to reflect interests of developers. Highlight some features per collection to raise awareness.
- Games
- WebGL 2
- WebAssembly
- Web Audio
- TBD …
- Apps
- Service Workers
- Push API
- Web Manifest
- Fetch API
- BackgroundSync
- Geofencing
- TBD …
Design - Flexbox
- Web Animations
- CSS Scroll Snap
- Web Components
templateElement- Shadow DOM
Appendix A
Games features outlined by @juj
- Canvas+WebGL 1.0
- WebGL 2.0
- Web Audio
- I would really love to require two currently nonexisting features here: 16-bit integer PCM sample type, and glitch-free synthesized audio streaming API, however there is no spec upgrade to Web Audio yet to enable these.
- Pointer lock
- Full Screen
- SharedArrayBuffer
- SIMD.js
- Web Workers
- (test APIs available in web workers?)
- Gamepad API
- IndexedDB
- Page Visibility API (http://www.w3.org/TR/page-visibility/)
- requestAnimationFrame
- Web Sockets
- WebRTC
- (WebAssembly?) (too early?)
- Mobile: touch events (i.e. multitouch, and not just single touch emulated as mouse events, http://www.w3.org/TR/touch-events/)
- Mobile: vibration API (http://www.w3.org/TR/vibration/)
- Mobile: DeviceOrientation and DeviceMotion (http://www.w3.org/TR/orientation-event/)
- Mobile: Screen Orientation API (http://www.w3.org/TR/screen-orientation/)
- Mobile: Geolocation (GPS)
- Features important specific to Emscripten (probably test these a little bit better than just feature testing):
- Emscripten memory model:
- ArrayBuffer.transfer (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer)
- Test guaranteed HEAP availability: allocate a 1GB (1.5GB? 2GB?) heap and test that is must succeed. (non-mobile)
- Test that Emscripten HEAP is properly handled as a virtual noncommitted memory until used (e.g. spawn several pages that allocate a 1GB Heap, but don't use it)
- Emscripten filesystem interaction:
- IndexedDB in workers
- FileReaderSync
- File API: Blob URLs and Blob constructor (http://www.w3.org/TR/FileAPI/#url)
- Support for running large codebases (large # of lines in the .js file, large # of functions, large # of vars in a function, large # of cases in a switch)
- possibly doesn't need a specific test, and we could just make sure that we have a very large application that stresses these in the second part of this suite (below)
- Math.fround (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround)
- Currently we have been holding this back in Emscripten and have not set this as default enabled, since even though other browser support this, not all browsers actually improve performance when having this enabled. In this suite, we should enable all tests to have this (in the strict -s PRECISE_F32=1 mode) and only measure performance with this enabled. Also, we should make sure ArrayBuffer.transfer() (-s ALLOW_MEMORY_GROWTH=1) is enabled in all tests.
- Math.imul (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul)
- JavaScript const keyword (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)
Reactions are currently unavailable