Pada 17 Maret 2021, rilis versi kesembilan dari mesin V8 diterbitkan. Posting ini adalah deskripsi singkat tentang apa yang termasuk dalam log perubahan rilis.
Posting asli V8 rilis v9.0
JavaScript
Cocokkan indeks di RegExp
Sejak versi 9.0, pengembang bisa mendapatkan larik posisi awal dan akhir yang cocok dengan grup tangkapan yang cocok dengan ekspresi reguler. Larik ini tersedia melalui properti .indices
untuk objek yang cocok jika ekspresi reguler memiliki sebuah bendera / 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;
}
dan misalnya, kami memanggil fungsi ini di JavaScript untuk menambahkan beberapa vektor (direpresentasikan sebagai array yang diketik):
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();
Fitur ini masih eksperimental dan dapat diaktifkan dengan sebuah bendera --turbo-inline-js-wasm-calls
.
Lihat dokumen desain untuk detailnya .