Joyee Cheung
a3e0834ee4
deps: V8: cherry-pick efb1133eb894
...
Original commit message:
[api] Add v8::ScriptCompiler::CachedData::CompatibilityCheck()
This patch adds a new API v8::ScriptCompiler::CachedData::CompatibilityCheck()
in order to allow embedders to check if the code cache can be used in
the current isolate without looking up for the source code. It also returns more detailed reasons about why the code cache cannot be used
when it's bound to be rejected. This makes it possible to enforce
portability checks in case code code becomes CPU-dependent in the
future.
Refs: https://github.com/nodejs/node/issues/42566#issuecomment-1735862123
Change-Id: Ia1d677b949050add961af6fbf62c44342c061312
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4905290
Reviewed-by: Marja Hölttä <marja@chromium.org >
Reviewed-by: Toon Verwaest <verwaest@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#90833}
Refs: https://github.com/v8/v8/commit/efb1133eb894a283ff0341c4e44d43e913911b6c
PR-URL: https://github.com/nodejs/node/pull/51551
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-02-01 11:53:59 +00:00
Joyee Cheung
b982335637
deps: V8: cherry-pick 0fd478bcdabd
...
Original commit message:
[heap-profiler]: expose QueryObjects() to v8::HeapProfiler
This allows embedders to use this API for testing memory leaks more
reliably. See https://github.com/nodejs/node/pull/50572 for an
example about how the API can be used.
Change-Id: Ic3d1268e2b331c37e8ec92997b764b9b5486f8c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5006373
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Reviewed-by: Simon Zünd <szuend@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#91123}
Refs: https://github.com/v8/v8/commit/0fd478bcdabd3400d9d74c47c4883c085ef37d18
PR-URL: https://github.com/nodejs/node/pull/50572
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
PR-URL: https://github.com/nodejs/node/pull/50115
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2024-01-04 09:31:46 +01:00
Michaël Zasso
d1d60b297d
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
PR-URL: https://github.com/nodejs/node/pull/49639
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/50115
Reviewed-By: Michael Dawson <midawson@redhat.com >
2024-01-04 09:31:05 +01:00
Michaël Zasso
d8c97e4857
deps: update V8 to 11.9.169.7
...
PR-URL: https://github.com/nodejs/node/pull/50115
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2024-01-04 09:30:13 +01:00
Joyee Cheung
bafbb6a6eb
deps: V8: cherry-pick 0fd478bcdabd
...
Original commit message:
[heap-profiler]: expose QueryObjects() to v8::HeapProfiler
This allows embedders to use this API for testing memory leaks more
reliably. See https://github.com/nodejs/node/pull/50572 for an
example about how the API can be used.
Change-Id: Ic3d1268e2b331c37e8ec92997b764b9b5486f8c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5006373
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Reviewed-by: Simon Zünd <szuend@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#91123}
Refs: https://github.com/v8/v8/commit/0fd478bcdabd3400d9d74c47c4883c085ef37d18
PR-URL: https://github.com/nodejs/node/pull/50572
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
2023-12-15 00:35:38 +01:00
Michaël Zasso
0899bee48c
deps: patch V8 to 11.8.172.17
...
Refs: https://github.com/v8/v8/compare/11.8.172.15...11.8.172.17
PR-URL: https://github.com/nodejs/node/pull/50292
Refs: https://github.com/v8/v8/compare/11.8.172.15...11.8.172.16
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
2023-10-31 13:37:03 +00:00
Michaël Zasso
9f46adf5bc
deps: patch V8 to 11.8.172.15
...
Refs: https://github.com/v8/v8/compare/11.8.172.13...11.8.172.15
PR-URL: https://github.com/nodejs/node/pull/50114
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2023-10-17 15:16:23 +00:00
Michaël Zasso
867586ce95
deps: V8: cherry-pick 93b1a74cbc9b
...
Original commit message:
Reland "[api] allow v8::Data as internal field"
This is a reland of commit 0aa622e12893e9921c01a34ce9507b544e599c4a
The original patch tried to run a test that calls exit() in the
fatal error handler in parallel, which would not work. This marked
the test with TEST() to avoid running it in parallel.
Original change's description:
> [api] allow v8::Data as internal field
>
> Previously only v8::Value can be stored as internal fields.
> In some cases, however, it's necessary for the embedder to
> tie the lifetime of a v8::Data with the lifetime of a
> JS object, and that v8::Data may not be a v8::Value, as
> it can be something returned from the V8 API. One way to
> keep the v8::Data alive may be to use a v8::Persistent<v8::Data>
> but that can easily lead to leaks.
>
> This patch changes v8::Object::GetInternalField() and
> v8::Object::SetInernalField() to accept v8::Data instead of just
> v8::Value, so that v8::Data can kept alive by a JS object in
> a way that the GC can be aware of to address this problem.
> This is a breaking change for embedders
> using v8::Object::GetInternalField() as it changes the return
> type. Since most v8::Value subtypes only support direct casts
> from v8::Value but not v8::Data, calls like
>
> object->GetInternalField(index).As<v8::External>()
>
> needs to be updated to cast the value to v8::Value first:
>
> object->GetInternalField(index).As<v8::Value>().As<v8::External>()
>
> Bug: v8:14120
> Change-Id: I731c958d1756b9d5ee4a3e78813416cd60d1b7ca
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4707972
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
> Commit-Queue: Joyee Cheung <joyee@igalia.com >
> Cr-Commit-Position: refs/heads/main@{#89718}
Bug: v8:14120
Change-Id: I3e45d09b5c300d5eefc73e380ef21ac2bd61760c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4834471
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Cr-Commit-Position: refs/heads/main@{#89824}
Refs: https://github.com/v8/v8/commit/93b1a74cbc9b5382a145051b9475433bc6107f1e
PR-URL: https://github.com/nodejs/node/pull/49639
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2023-10-10 08:26:32 +02:00
Michaël Zasso
42cd952dbd
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
PR-URL: https://github.com/nodejs/node/pull/49639
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2023-10-10 08:26:03 +02:00
Michaël Zasso
17a74ddd3d
deps: update V8 to 11.8.172.13
...
PR-URL: https://github.com/nodejs/node/pull/49639
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2023-10-10 08:25:41 +02:00
Joyee Cheung
668437ccad
deps: V8: cherry-pick b60a03df4ceb
...
Original commit message:
[api] mark v8::Script and v8::UnboundScript as v8::Data
v8::UnboundModuleScript and v8::Module are already v8::Data.
Mark v8::Script and v8::UnboundScript as v8::Data so that they
can be used in other V8 APIs that takes v8::Data.
Refs: https://github.com/nodejs/node/pull/48510
Bug: v8:14120
Change-Id: I2dd5648528c1b0030292872441758d4fb2cfcc1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4827307
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#89727}
Refs: https://github.com/v8/v8/commit/b60a03df4cebafb4c92ee644d11617ad73889e5e
PR-URL: https://github.com/nodejs/node/pull/49491
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Nitzan Uziely <linkgoron@gmail.com >
2023-09-12 10:04:27 +00:00
Joyee Cheung
f970087147
deps: V8: backport 93b1a74cbc9b
...
Original commit message:
Reland "[api] allow v8::Data as internal field"
This is a reland of commit 0aa622e12893e9921c01a34ce9507b544e599c4a
The original patch tried to run a test that calls exit() in the
fatal error handler in parallel, which would not work. This marked
the test with TEST() to avoid running it in parallel.
Original change's description:
> [api] allow v8::Data as internal field
>
> Previously only v8::Value can be stored as internal fields.
> In some cases, however, it's necessary for the embedder to
> tie the lifetime of a v8::Data with the lifetime of a
> JS object, and that v8::Data may not be a v8::Value, as
> it can be something returned from the V8 API. One way to
> keep the v8::Data alive may be to use a v8::Persistent<v8::Data>
> but that can easily lead to leaks.
>
> This patch changes v8::Object::GetInternalField() and
> v8::Object::SetInernalField() to accept v8::Data instead of just
> v8::Value, so that v8::Data can kept alive by a JS object in
> a way that the GC can be aware of to address this problem.
> This is a breaking change for embedders
> using v8::Object::GetInternalField() as it changes the return
> type. Since most v8::Value subtypes only support direct casts
> from v8::Value but not v8::Data, calls like
>
> object->GetInternalField(index).As<v8::External>()
>
> needs to be updated to cast the value to v8::Value first:
>
> object->GetInternalField(index).As<v8::Value>().As<v8::External>()
>
> Bug: v8:14120
> Change-Id: I731c958d1756b9d5ee4a3e78813416cd60d1b7ca
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4707972
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
> Commit-Queue: Joyee Cheung <joyee@igalia.com >
> Cr-Commit-Position: refs/heads/main@{#89718}
Bug: v8:14120
Change-Id: I3e45d09b5c300d5eefc73e380ef21ac2bd61760c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4834471
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Cr-Commit-Position: refs/heads/main@{#89824}
Refs: https://github.com/v8/v8/commit/93b1a74cbc9b5382a145051b9475433bc6107f1e
PR-URL: https://github.com/nodejs/node/pull/49419
Refs: https://github.com/v8/v8/commit/0aa622e12893e9921c01a34ce9507b544e599c4a
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2023-09-11 11:29:02 +00:00
Joyee Cheung
44027fbca8
deps: V8: cherry-pick 93275031284c
...
Original commit message:
[cppgc] expose wrapper descriptor on CppHeap
This makes it possible for embedders to:
1. Avoid creating wrapper objects that happen to have a layout that
leads V8 to consider the object cppgc-managed while it's not.
Refs: https://github.com/nodejs/node/pull/43521
2. Create cppgc-managed wrapper objects when they do not own the
CppHeap. Refs: https://github.com/nodejs/node/pull/45704
Bug: v8:13960
Change-Id: If31f4d56c5ead59dc0d56f937494d23d631f7438
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4598833
Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
Commit-Queue: Michael Lippautz <mlippautz@chromium.org >
Cr-Commit-Position: refs/heads/main@{#88490}
Refs: https://github.com/v8/v8/commit/93275031284c66be7852b13f1b18a8bbe7f3a0a9
PR-URL: https://github.com/nodejs/node/pull/48660
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
2023-07-21 16:44:20 +02:00
Chengzhong Wu
38dee8a1c0
src: distinguish HTML transferable and cloneable
...
The HTML structured serialize algorithm treats transferable and
serializable as two different bits. A web platform interface can be
both transferable and serializable.
Splits BaseObject::TransferMode to be able to compose the two bits
and distinguishes the transferable and cloneable.
PR-URL: https://github.com/nodejs/node/pull/47956
Refs: https://github.com/v8/v8/commit/cf13b9b46572a9824d2d632abdd48c56161ace02
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com >
2023-07-07 17:00:00 +00:00
Michaël Zasso
b8c7a1ecf8
deps: patch V8 to 11.3.244.8
...
Refs: https://github.com/v8/v8/compare/11.3.244.4...11.3.244.8
PR-URL: https://github.com/nodejs/node/pull/47536
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
2023-04-17 06:55:34 +00:00
Michaël Zasso
a7c129f286
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2023-03-31 14:15:28 +00:00
Michaël Zasso
f226350fcb
deps: update V8 to 11.3.244.4
...
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2023-03-31 14:15:23 +00:00
Michaël Zasso
0f69ec4dd7
deps: patch V8 to 10.9.194.9
...
Refs: https://github.com/v8/v8/compare/10.9.194.6...10.9.194.9
PR-URL: https://github.com/nodejs/node/pull/45995
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2022-12-31 09:02:27 +00:00
Anna Henningsen
b66ae39c1e
deps: V8: backport 8ca9f77d0f7c
...
This fixes a crash when loading snapshots that contain empty
ArrayBuffer instances:
```js
const X = [];
X.push(new ArrayBuffer());
v8.startupSnapshot.setDeserializeMainFunction(() => {
for (let i = 0; i < 1000000; i++) { // trigger GC
X.push(new ArrayBuffer());
}
})
```
Original commit message:
[sandbox] Sandboxify JSArrayBuffer::extension external pointer
Bug: chromium:1335043
Change-Id: Id8e6883fc652b144f6380ff09b1c18e777e041c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706626
Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
Reviewed-by: Igor Sheludko <ishell@chromium.org >
Commit-Queue: Samuel Groß <saelo@chromium.org >
Cr-Commit-Position: refs/heads/main@{#84544}
Refs: https://github.com/v8/v8/commit/8ca9f77d0f7c2d5ec5ef8255b9689f5ac1c547a3
PR-URL: https://github.com/nodejs/node/pull/45871
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-12-21 12:00:47 +00:00
Yagiz Nizipli
894aff75be
deps: V8: cherry-pick bc831f8ba33b
...
Original commit message:
[fastcall] Implement support for onebyte string arguments
This CL adds one byte string specialization support for fast API call arguments.
It introduces a kOneByteString variant to CTypeInfo.
We see a ~6x improvement in Deno's TextEncoder#encode microbenchmark.
Rendered results: https://divy-v8-patches.deno.dev/
Bug: chromium:1052746
Change-Id: I47c3a9e101cd18ddc6ad58f627db3a34231b60f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4036884
Reviewed-by: Toon Verwaest <verwaest@chromium.org >
Reviewed-by: Maya Lekova <mslekova@chromium.org >
Commit-Queue: Maya Lekova <mslekova@chromium.org >
Cr-Commit-Position: refs/heads/main@{#84552}
Refs: https://github.com/v8/v8/commit/bc831f8ba33b79e2eb670faf1f84c4e39aeb0f9f
PR-URL: https://github.com/nodejs/node/pull/45788
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com >
2022-12-10 14:23:50 +00:00
Michaël Zasso
5890d09644
deps: patch V8 to 10.9.194.6
...
Refs: https://github.com/v8/v8/compare/10.9.194.4...10.9.194.6
PR-URL: https://github.com/nodejs/node/pull/45748
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-12-08 19:52:52 +00:00
Michaël Zasso
51ab98c71b
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-11-27 17:27:18 +00:00
Jiawen Geng
9f84d3eea8
deps: V8: fix v8-cppgc.h for MSVC
...
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=12661
Refs: https://github.com/nodejs/node/issues/42375
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-11-27 17:27:17 +00:00
Yagiz Nizipli
16e03e7968
deps: update V8 to 10.9.194.4
...
PR-URL: https://github.com/nodejs/node/pull/45579
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-11-27 17:27:13 +00:00
Michaël Zasso
1cf4ad7ebe
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/44741
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/45230
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-11-19 09:11:37 +00:00
Jiawen Geng
cecad3b56c
deps: V8: fix v8-cppgc.h for MSVC
...
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=12661
Refs: https://github.com/nodejs/node/issues/42375
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
PR-URL: https://github.com/nodejs/node/pull/45230
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-11-19 09:11:36 +00:00
Michaël Zasso
edd537ca2f
deps: update V8 to 10.8.168.20
...
PR-URL: https://github.com/nodejs/node/pull/45230
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-11-19 09:11:32 +00:00
Yagiz Nizipli
5b8b92176e
deps: V8: cherry-pick 9df5ef70ff18
...
Original commit message:
Add an `v8::ArrayBuffer::WasDetached` method to the C++ API
V8's C++ API does not give a way to tell whether an ArrayBuffer has
been detached from the `v8::ArrayBuffer` class. In fact, as far as can
be told from the C++ API without running JS code, detached
ArrayBuffers behave the same as zero-sized ArrayBuffers and there is
no way to observe the difference. However, this difference can be
observed in JS because constructing a TypedArray from a detached
ArrayBuffer will throw.
This change adds a `WasDetached` method to the `v8::ArrayBuffer` class
to give embedders access to this information without having to run JS
code.
Bug: v8:13159
Change-Id: I2bb1e380cee1cecd31f6d48ec3d9f28c03a8a673
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810345
Commit-Queue: Toon Verwaest <verwaest@chromium.org >
Reviewed-by: Toon Verwaest <verwaest@chromium.org >
Cr-Commit-Position: refs/heads/main@{#83963}
Refs: https://github.com/v8/v8/commit/9df5ef70ff18977b157028fc55ced5af4bcee535
PR-URL: https://github.com/nodejs/node/pull/45474
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-11-18 09:46:49 +00:00
Michaël Zasso
8f9dc2732e
deps: patch V8 to 10.7.193.22
...
Refs: https://github.com/v8/v8/compare/10.7.193.20...10.7.193.22
PR-URL: https://github.com/nodejs/node/pull/45460
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-11-16 16:56:12 +00:00
Shi Pujin
8a465a2e3c
deps: V8: cherry-pick 56816d76c121
...
Original commit message:
[loong64] Supplement a LoongArch support in include/v8config.h
Change-Id: I658c1b781163bcd3ca39bfceb74aef9d255247b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3894795
Reviewed-by: Toon Verwaest <verwaest@chromium.org >
Commit-Queue: Liu Yu <liuyu@loongson.cn >
Cr-Commit-Position: refs/heads/main@{#83374}
PR-URL: https://github.com/nodejs/node/pull/45353
Refs: https://github.com/v8/v8/commit/56816d76c121c8dd5b406dc6019350eee05f4abd
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
2022-11-08 14:26:48 +00:00
Michaël Zasso
9ae8920175
deps: patch V8 to 10.7.193.20
...
Refs: https://github.com/v8/v8/compare/10.7.193.16...10.7.193.20
PR-URL: https://github.com/nodejs/node/pull/45228
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
2022-11-06 07:40:08 +00:00
Michaël Zasso
1364fd8790
deps: patch V8 to 10.7.193.16
...
Refs: https://github.com/v8/v8/compare/10.7.193.13...10.7.193.16
PR-URL: https://github.com/nodejs/node/pull/45023
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-10-18 12:13:51 +00:00
Michaël Zasso
488474618c
deps: V8: cherry-pick c3dffe6e2bda
...
Original commit message:
[api] Expose parsed module source map urls
Source map urls can be parsed from the magic comments. Expose them with
public apis on the UnboundModuleScript, similar to the UnboundScript.
Change-Id: Ia5dfdc8ff25f825c9fa7d241d0d79ba20028586b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3917379
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Commit-Queue: Chengzhong Wu (legendecas) <legendecas@gmail.com >
Cr-Commit-Position: refs/heads/main@{#83527}
Refs: https://github.com/v8/v8/commit/c3dffe6e2bdab79bb5bfb94be9fcc6a16adf6cf5
PR-URL: https://github.com/nodejs/node/pull/44958
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-10-13 06:49:36 +00:00
Michaël Zasso
690a837f4f
deps: V8: cherry-pick 3d59a3c2c164
...
Original commit message:
Add option to report discarded allocations in sampling heap profiler
A couple of customers have asked about using devtools to get information
about temporary allocations, with the goal of reducing GC time and/or
peak memory usage. Currently, the sampling heap profiler reports only
objects which are still alive at the end of the profiling session. In
this change, I propose adding configuration options when starting the
sampling heap profiler so that it can optionally include information
about objects which were discarded by the GC before the end of the
profiling session. A user could run the sampling heap profiler in
several different modes depending on their goals:
1. To find memory leaks or determine which functions contribute most to
steady-state memory consumption, the current default mode is best.
2. To find functions which cause large temporary memory spikes or large
GC pauses, the user can request data about both live objects and
those collected by major GC.
3. To tune for minimal GC activity in latency-sensitive applications
like real-time audio processing, the user can request data about
every allocation, including objects collected by major or minor GC.
4. I'm not sure why anybody would want data about objects collected by
minor GC and not objects collected by major GC, but it's also a valid
flags combination.
Change-Id: If55d5965a1de04fed3ae640a02ca369723f64fdf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3868522
Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Reviewed-by: Simon Zünd <szuend@chromium.org >
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com >
Cr-Commit-Position: refs/heads/main@{#83202}
Refs: https://github.com/v8/v8/commit/3d59a3c2c16405eea59263300c5591c3283a2a0e
PR-URL: https://github.com/nodejs/node/pull/44958
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-10-13 06:49:33 +00:00
Michaël Zasso
bab8b3aad6
deps: V8: cherry-pick 8b8703953616
...
Original commit message:
[API] Remove second OnCriticalMemoryPressure
Remove the deprecated OnCriticalMemoryPressure method with receives an
informative parameter.
R=mlippautz@chromium.org
Bug: chromium:634547
Change-Id: I932c3b5030291294dd340362f0b20d374e3067c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3780533
Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
Commit-Queue: Clemens Backes <clemensb@chromium.org >
Cr-Commit-Position: refs/heads/main@{#83254}
Refs: https://github.com/v8/v8/commit/8b870395361633a134a257c604470378d06335ed
PR-URL: https://github.com/nodejs/node/pull/44958
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-10-13 06:49:32 +00:00
Michaël Zasso
7a952e8ea5
deps: silence irrelevant V8 warning
...
PR-URL: https://github.com/nodejs/node/pull/44741
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-10-11 07:26:28 +02:00
Jiawen Geng
0cc81f0aa4
deps: V8: fix v8-cppgc.h for MSVC
...
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=12661
Refs: https://github.com/nodejs/node/issues/42375
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2022-10-11 07:26:04 +02:00
Michaël Zasso
6bd756d7c6
deps: update V8 to 10.7.193.13
...
PR-URL: https://github.com/nodejs/node/pull/44741
Fixes: https://github.com/nodejs/node/issues/44650
Fixes: https://github.com/nodejs/node/issues/37472
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-10-11 07:24:33 +02:00
Michaël Zasso
3a6003aea8
deps: patch V8 to 10.2.154.15
...
Refs: https://github.com/v8/v8/compare/10.2.154.13...10.2.154.15
PR-URL: https://github.com/nodejs/node/pull/44294
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2022-08-28 06:45:34 +00:00
Keyhan Vakil
9916ef813b
deps: cherry-pick 00704f5a from V8 upstream
...
Original commit message:
Add more efficient API for accesssing ArrayBuffer raw data
Raw data access is already possible via GetBackingStore()->GetData().
This API exposes a more efficient way for accessing
JSArrayBuffer::backing_store (which, despite the confusing name, is no
the BackingStore but its raw data pointer).
Bug: v8:10343
Change-Id: I695cea91e2c3de75ce6c86bac6e413ce6617958b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3764341
Reviewed-by: Camillo Bruni <cbruni@chromium.org >
Commit-Queue: Marja Hölttä <marja@chromium.org >
Cr-Commit-Position: refs/heads/main@{#81745}
Refs: https://github.com/v8/v8/commit/00704f5a03d9db02c14c4f4c35188effc46e82ab
Refs: https://github.com/nodejs/node/issues/32226
PR-URL: https://github.com/nodejs/node/pull/43921
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Feng Yu <F3n67u@outlook.com >
2022-07-26 23:38:16 +01:00
Michaël Zasso
b1f75d7924
deps: patch V8 to 10.2.154.13
...
Refs: https://github.com/v8/v8/compare/10.2.154.4...10.2.154.13
PR-URL: https://github.com/nodejs/node/pull/43727
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2022-07-11 21:38:03 +01:00
Michaël Zasso
0ce4725330
deps: patch V8 to 10.2.154.4
...
Refs: https://github.com/v8/v8/compare/10.2.154.2...10.2.154.4
PR-URL: https://github.com/nodejs/node/pull/43067
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2022-05-17 12:57:06 +01:00
Michaël Zasso
8d0bbf934f
deps: make V8 10.2 ABI-compatible with 10.1
...
Create an unused deopt kind to replace `DeoptimizeKind::kSoft`, which
was removed. This ensures that the layout of IsolateData doesn't change.
Refs: https://github.com/v8/v8/commit/1ff685d8b1a13794abaca3adf36cfd9838b1f6fc
PR-URL: https://github.com/nodejs/node/pull/42740
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-04-21 11:56:00 +02:00
Jiawen Geng
5820d145ad
deps: V8: fix v8-cppgc.h for MSVC
...
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=12661
Refs: https://github.com/nodejs/node/issues/42375
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2022-04-21 11:55:07 +02:00
Michaël Zasso
c237c377ac
deps: silence V8's warning on CompileFunction
...
We are not ready to migrate yet.
Refs: https://github.com/nodejs/node-v8/issues/214
PR-URL: https://github.com/nodejs/node/pull/40907
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2022-04-21 11:54:58 +02:00
Michaël Zasso
6bbc5596b1
deps: update V8 to 10.2.154.2
...
PR-URL: https://github.com/nodejs/node/pull/42740
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-04-21 11:54:15 +02:00
Michaël Zasso
e938515b41
deps: patch V8 to 10.1.124.8
...
Refs: https://github.com/v8/v8/compare/10.1.124.6...10.1.124.8
PR-URL: https://github.com/nodejs/node/pull/42730
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Beth Griggs <bgriggs@redhat.com >
2022-04-14 16:45:01 +01:00
Michaël Zasso and Nicolas Dubus
58f3fdcccd
deps: V8: cherry-pick semver-major commits from 10.2
...
Includes the following commits:
commit b2978927d8a96ebc814cccbc5a9f1c35910ee621
Remove dynamic map checks and custom deoptimization kinds
This CL removes:
- Dynamic map checks aka minimorphic property loads (TF support,
builtins).
- "Bailout" deopts (= drop to the interpreter once, but don't
throw out optimized code).
- "EagerWithResume" deopts (= part of dynamic map check
functionality, we call a builtin for the deopt check and deopt
or resume based on the result).
Fixed: v8:12552
Change-Id: I492cf1667e0f54586690b2f72a65ea804224b840
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401585
commit f52f934119635058b179c2359fe070b8ee0f9233
PPC/s390: Remove dynamic map checks and custom deoptimization kinds
Port b2978927d8a96ebc814cccbc5a9f1c35910ee621
Original Commit Message:
This CL removes:
- Dynamic map checks aka minimorphic property loads (TF support,
builtins).
- "Bailout" deopts (= drop to the interpreter once, but don't
throw out optimized code).
- "EagerWithResume" deopts (= part of dynamic map check
functionality, we call a builtin for the deopt check and deopt
or resume based on the result).
R=jgruber@chromium.org , joransiu@ca.ibm.com , junyan@redhat.com , midawson@redhat.com
BUG=
LOG=N
Change-Id: I64476f73810774c2c592231d82c4a2cbfa2bf94e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3537881
commit 38940b70986da6b43d18cb8cf8f0a3be36ca9010
[loong64][mips] Remove dynamic map checks and custom deoptimization kinds
Port commit b2978927d8a96ebc814cccbc5a9f1c35910ee621
Fixed: v8:12552
Change-Id: Ic2fbded9a662ed840a0350e3ce049e147fbf03a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541527
commit da5b5f66a6bd27df6249602378300c6961bc62b4
[riscv64] Remove dynamic map checks and custom deoptimization kinds
Port b2978927d8a96ebc814cccbc5a9f1c35910ee621
Bug: v8:12552
Change-Id: I73e76fc5cc8905a0fbfc801b2f794735866d19e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3544725
commit ffae028b37991566c080c5528463f7d16017668c
Forward deprecation for resurrecting finalizer
Bug: v8:12672
Change-Id: Ib4f53086436e028b4ea32fbc960f57e91709d184
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532256
commit f6386018d472665e36d662c8b159d95325999d69
[api] Remove TracedGlobal<>
Remove deprecated TracedGlobal<>, greatly simplifying handling of
traced references in general.
Also saves a word per v8::TracedReference as there's no need to keep a
possible callback around.
Bug: v8:12603
Change-Id: Ice35d7906775b912d02e97a27a722b3e1cec28d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532251
commit a8beac553b0a1639bc9790c2d6f82caf6b2e150f
Deprecate some signature checks
Deprecate signature checks in
* Template::SetNativeDataProperty
* ObjectTemplate::SetAccessor
These are not used in Chrome and require some complicated check in the IC code, which we want to remove.
Change-Id: I413fafc8658e922fd590e7fe200600a624f019a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557253
commit cff2b5000a1aa417a9c4499bcfa3ffda4542f4f1
Deprecate signature checks in Set{Accessor,NativeDataProperty}
Change from V8_DEPRECATE_SOON to V8_DEPRECATED. It turned out that we
don't have to make changes in chrome code, so we can go to deprecated
right away.
Bug: chromium:1310790
Change-Id: I1bd529536d3a0098f11f13b3e44fe3dbc80eed04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571897
commit 9238afb0c0ee52c9111a7e9f2f055137628771ad
Allow embedder to set global OOM handler
Embedders can currently specify a callback for OOM errors during
Isolate initialization. However, there are cases where an OOM error can
be thrown in a context where we don't have access to an Isolate, for
example on a task posted to a worker thread. This CL introduces an
initialization API to allow the embedder to specify a process-wide OOM
callback.
Bug: chromium:614440
Change-Id: I326753d80767679f677e85104d9edeef92e19086
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3561916
commit ca51ae3ac8b468509603633adb6ee3b3be9306ec
[api][profiler] Get StartProfiling, StopProfiling to accept integer ID rather than string
This CL adds support for interacting with CpuProfile with their integer
id.
A String ID is problematic because it forces an allocation when stopping
or cancelling a Profiler which can happen during a GC when this
is not allowed.
Change-Id: I9a8e754bd67214be0bbc5ca051bcadf52bf71a68
Bug: chromium:1297283
Co-Authored-By: Nicolas Dubus <nicodubus@fb.com >
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3522896
Refs: https://github.com/v8/v8/commit/b2978927d8a96ebc814cccbc5a9f1c35910ee621
Refs: https://github.com/v8/v8/commit/f52f934119635058b179c2359fe070b8ee0f9233
Refs: https://github.com/v8/v8/commit/38940b70986da6b43d18cb8cf8f0a3be36ca9010
Refs: https://github.com/v8/v8/commit/da5b5f66a6bd27df6249602378300c6961bc62b4
Refs: https://github.com/v8/v8/commit/ffae028b37991566c080c5528463f7d16017668c
Refs: https://github.com/v8/v8/commit/f6386018d472665e36d662c8b159d95325999d69
Refs: https://github.com/v8/v8/commit/a8beac553b0a1639bc9790c2d6f82caf6b2e150f
Refs: https://github.com/v8/v8/commit/cff2b5000a1aa417a9c4499bcfa3ffda4542f4f1
Refs: https://github.com/v8/v8/commit/9238afb0c0ee52c9111a7e9f2f055137628771ad
Refs: https://github.com/v8/v8/commit/ca51ae3ac8b468509603633adb6ee3b3be9306ec
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2022-04-12 22:10:34 +02:00
Jiawen Geng
fde59217b9
deps: V8: fix v8-cppgc.h for MSVC
...
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=12661
Refs: https://github.com/nodejs/node/issues/42375
PR-URL: https://github.com/nodejs/node/pull/42657
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2022-04-12 22:10:02 +02:00
Michaël Zasso
cdcc82cced
deps: silence V8's warning on CompileFunction
...
We are not ready to migrate yet.
Refs: https://github.com/nodejs/node-v8/issues/214
PR-URL: https://github.com/nodejs/node/pull/40907
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2022-04-12 22:09:50 +02:00