Le 17 mars 2021, la sortie de la neuvième version du moteur V8 a été publiée. Cet article est une brève description de ce qui était inclus dans le journal des modifications de la version.
Publication originale de la version V8 v9.0
JavaScript
Faire correspondre les indices dans RegExp
Depuis la version 9.0, les développeurs peuvent obtenir un tableau de positions de début et de fin qui correspondent aux groupes de capture qui correspondent à une expression régulière. Ce tableau est disponible via une propriété .indices
pour les objets correspondants si l'expression régulière a un indicateur / d
.
const re = /(a)(b)/d; // Note the /d flag.
const m = re.exec('ab');
console.log(m.indices[0]); // Index 0 is the whole match.
// → [0, 2]
console.log(m.indices[1]); // Index 1 is the 1st capture group.
// → [0, 1]
console.log(m.indices[2]); // Index 2 is the 2nd capture group.
// → [1, 2]
super
super
(, super.x
) V8 TurboFan. , super
, , , .
"for ( async of "
WebAssembly
JS-to-Wasm
V8 WebAssembly JavaScript. , JavaScript WebAssembly, JS-to-Wasm, JavaScript WebAssembly, , .
, , , JavaScript WebAssembly , JavaScript JavaScript. , JS-to-Wasm ., .
, WebAssembly, , :
double addNumbers(double x, double y) {
return x + y;
}
et par exemple, nous appelons cette fonction en JavaScript pour ajouter plusieurs vecteurs (représentés sous forme de tableaux typés):
const addNumbers = instance.exports.addNumbers;
function vectorSum(len, v1, v2) {
const result = new Float64Array(len);
for (let i = 0; i < len; i++) {
result[i] = addNumbers(v1[i], v2[i]);
}
return result;
}
const N = 100_000_000;
const v1 = new Float64Array(N);
const v2 = new Float64Array(N);
for (let i = 0; i < N; i++) {
v1[i] = Math.random();
v2[i] = Math.random();
}
// Warm up.
for (let i = 0; i < 5; i++) {
vectorSum(N, v1, v2);
}
// Measure.
console.time();
const result = vectorSum(N, v1, v2);
console.timeEnd();
Cette fonctionnalité est encore expérimentale et peut être activée avec un indicateur --turbo-inline-js-wasm-calls
.
Voir le document de conception pour plus de détails .