- while (note) {
- const [head, body, tail] = splitParts(note, '`');
- head && fragment.append(head);
- body && fragment.appendChild(h('code', {}, [body]));
- note = tail;
+ let fragment;
+ if (typeof note === 'string') {
+ fragment = document.createDocumentFragment();
+
+ // Transform markdown-like backticks into html
+ while (note) {
+ const [head, body, tail] = splitParts(note, '`');
+ head && fragment.append(head);
+ body && fragment.appendChild(h('code', {}, [body]));
+ note = tail;
+ }
+ } else {
+ fragment = note;
}
const firstNode = fragment.firstChild;
@@ -274,13 +307,6 @@
}
}
- if (isMissingData) {
- fragment.appendChild(h('a', {
- href: 'https://github.com/WebAssembly/website/blob/master/features.json',
- target: '_blank'
- }, [' (contribute data)']))
- }
-
return fragment;
}
@@ -299,9 +325,7 @@
// Lazy-loading
function _loadTooltipModule() {
- // Be sure to change the preloads in markdown when updating url.
- // The ESM bundle of this package doesn't work with unpkg.com.
- const module = import('https://cdn.jsdelivr.net/npm/@floating-ui/dom@1/+esm');
+ const module = import(document.getElementById('preload-tooltip').href);
const subscribers = new Set();
const updateAll = () => { for (const fn of subscribers) fn(); };
@@ -311,7 +335,7 @@
window.addEventListener('resize', updateAll, { passive: true });
let counter = 0;
- return (reference, note, boundary) =>
+ return (reference, note, boundary, parent = reference) =>
module.then(({ computePosition, offset, flip, shift, arrow }) => {
const tooltipId = `tooltip-${counter++}`;
const tooltip = h('div', { id: tooltipId, className: 'feature-tooltip', role: 'tooltip' });
@@ -377,16 +401,15 @@
timeout = setTimeout(() => setVisible(false), 80);
});
- reference.appendChild(tooltip);
+ parent.appendChild(tooltip);
reference.setAttribute('aria-describedby', tooltipId);
return tooltip;
- });
+ }).catch(__feature_table_error_handler);
}
function _loadFeatureDetectModule() {
- // Be sure to change the preloads in markdown when updating url.
- const module = import('https://cdn.jsdelivr.net/npm/wasm-feature-detect@1.5/dist/esm/index.js');
+ const module = import(document.getElementById('preload-detect').href);
return (featureName) => module
.then(wasmFeatureDetect => wasmFeatureDetect[featureName]());
}
-})();
+})().catch(__feature_table_error_handler);
diff --git a/roadmap.md b/roadmap.md
index ee201218..fad2edb3 100644
--- a/roadmap.md
+++ b/roadmap.md
@@ -27,12 +27,22 @@ After the initial release, WebAssembly has been gaining new features through the
The table below aims to track implemented features in popular engines:
+
+