Karl Seguin
05102c673a
use js.Value when input can be a value
...
We previously treated v8::Object and v8::Values interchangeably, and would just
ptrCast one to the other. So, if an API was defined with a js.Object but was
given a non-object value, e.g. 9001, it would still work.
This has since been tightened. If an API takes a js.Object, than the v8 value
must be an object. Passing a non-object will result in a InvalidArgument error.
CustomEvent.detail and PerformanceMark.detail can both be any value, so the
apis/fields have been updated from js.Object -> js.Value.
2026-01-14 15:38:34 +08:00
Karl Seguin
db2ecfe159
Merge pull request #1307 from lightpanda-io/direct_v8
...
Direct v8
2026-01-14 07:27:42 +00:00
Karl Seguin
640cb0d489
Merge pull request #1364 from lightpanda-io/observer_try_catch
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
add trycatch to Intersection and Performance Observers
2026-01-14 02:10:56 +00:00
Karl Seguin
223a6170d5
Fix use-after free
...
On CDP.BrowserContext.deinit, clear the isolated world ExecutionContext before
terminating the session. This is important as the isolated_world list is
allocated from the session.arena.
Also, semi-revert 63f1c85964 . Before all this
we were running microtasks on ExecutionWorld.removeContext. That didn't seem
right (and I thought it was the original source of the bug). But, for the "real"
Page context, this is critical, since Microtasks can reference the Page object.
Since microTasks are isolation-level, it's possible for a microtasks for Page1
to execute after Page1 goes away (if we create a new page, Page2). This re-adds
the microtask "draining", but only for the Page (i.e. in Page.deinit).
2026-01-14 09:37:10 +08:00
Karl Seguin
63f1c85964
Remove unnecessary microtask run.
...
This crashes linux in releasesafe without an embedded snapshot. Not sure why,
but it shouldn't be necessary. This was added back when we were executing
microtasks on a schedule, rather than manually at explicit points.
2026-01-13 18:09:58 +08:00
Karl Seguin
c252c8e870
update v8 dep version
2026-01-13 16:12:28 +08:00
Karl Seguin
801c019150
update v8
2026-01-13 16:07:49 +08:00
Karl Seguin
d77a6620f3
merge main
2026-01-13 13:05:16 +08:00
Karl Seguin
4e4a615df8
Move Env's FunctionTemplate from Global -> Eternal
...
(we'll move more to Eternal's, this is just a first teaser)
2026-01-13 12:58:31 +08:00
Karl Seguin
1b0ea44519
merge main
2026-01-13 12:58:31 +08:00
Karl Seguin
86f4ea108d
Store snapshot templates in isolate, not context.
...
This lets us load the isolate without having to create a temp/dummy context
just to get the templates.
Call ContextDisposedNotification when a context is removed. Supposedly this can
help/hint to the isolate about memory management.
2026-01-13 12:58:30 +08:00
Karl Seguin
2322cb9b83
remove unused code, remove references to v8::Persistent
2026-01-13 12:58:30 +08:00
Karl Seguin
4720268426
Don't dupe StartupData, use what v8 gives us directly.
2026-01-13 12:58:30 +08:00
Karl Seguin
b4f134bff6
Prefer js.Value over js.Object in History/Navigation
...
Persist function callback in PerformanceObserver
2026-01-13 12:58:30 +08:00
Karl Seguin
f2a9125b99
js.v8 is not equal to js.v8.c
...
This means the C funtions/types now sit in the root of v8.
2026-01-13 12:58:30 +08:00
Karl Seguin
8438b7d561
remove remaining direct v8 references
2026-01-13 12:58:30 +08:00
Karl Seguin
18c846757b
migrate almost all types
2026-01-13 12:58:28 +08:00
Karl Seguin
bc11a48e6b
migrate most cases, merge Caller into bridge
2026-01-13 12:57:06 +08:00
Karl Seguin
01ecd725b8
cleanup resolvers
2026-01-13 12:57:06 +08:00
Karl Seguin
e6af7d1bd0
import more types
2026-01-13 12:57:06 +08:00
Karl Seguin
701de08e8a
have our js.Context directly hold a js handle
2026-01-13 12:57:06 +08:00
Karl Seguin
363b95bdef
Isolate and HandleScope
2026-01-13 12:57:06 +08:00
Karl Seguin
ca5a385b51
Port js.Object
...
Use js.Value in apis that should take values (not objects), like console.log
and setTimeout and reportError.
2026-01-13 12:57:03 +08:00
Karl Seguin
93f0d24673
port TryCatch
2026-01-13 12:56:07 +08:00
Karl Seguin
a5038893fe
port Snapshot
2026-01-13 12:56:07 +08:00
Karl Seguin
3442f99a49
remove unused js.This
2026-01-13 12:56:07 +08:00
Karl Seguin
6ecf52cc03
port Platform and Inspector to use v8's C handles/functions directly
2026-01-13 12:56:07 +08:00
Karl Seguin
8aaef674fe
Migrate Function and String
2026-01-13 12:56:07 +08:00
Karl Seguin
3b1cd06615
Make js.Array and js.Value directly contain their v8 handles.
2026-01-13 12:56:06 +08:00
Karl Seguin
4841f8cc8f
add trycatch to Intersection and Performance Observers
2026-01-13 12:55:10 +08:00
Karl Seguin
d9d8f68bf8
Merge pull request #1361 from lightpanda-io/mutation-observer-trycall
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
use tryCall for MutationObserver records callback
2026-01-12 22:42:33 +00:00
Pierre Tachoire
cf726d9813
fix double slash in import path
2026-01-12 17:59:49 +01:00
Pierre Tachoire
92be2c45d6
use tryCall for MutationObserver records callback
...
Instead of `call` to avoid uncaught error
2026-01-12 17:58:40 +01:00
Pierre Tachoire
914092b538
Merge pull request #1355 from lightpanda-io/console_apis
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
add some missing APIs to Console
2026-01-12 15:15:24 +01:00
Pierre Tachoire
a8cd5fc266
Merge pull request #1354 from lightpanda-io/node_document
...
Node document
2026-01-12 15:14:57 +01:00
Pierre Tachoire
643f07fa10
Merge pull request #1352 from lightpanda-io/mutation_character_data
...
Mutation character data
2026-01-12 15:13:32 +01:00
Pierre Tachoire
0d77ff661b
Merge pull request #1360 from lightpanda-io/wpt-v8
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
ci: fix wpt path
2026-01-12 10:53:51 +01:00
Pierre Tachoire
70d84b2f72
ci: fix wpt build path
2026-01-12 10:38:13 +01:00
Pierre Tachoire
41905ef735
Merge pull request #1358 from lightpanda-io/wpt-v8
...
ci: move fetch test from integration to e2e
2026-01-12 09:26:55 +01:00
Pierre Tachoire
2a468cc750
ci: split wpt build and run
...
vv8 build can pollute stdout output.
2026-01-12 09:18:16 +01:00
Pierre Tachoire
32520000c6
ci: use releaseFast mode for wpt
2026-01-12 09:09:36 +01:00
Pierre Tachoire
14db7a8eb3
ci: move fetch test from integration to e2e
2026-01-12 08:53:24 +01:00
Pierre Tachoire
8460e9a385
Merge pull request #1357 from lightpanda-io/wpt-v8
...
CI changes
2026-01-12 08:42:53 +01:00
Pierre Tachoire
933a93a703
ci: move fetch tests into 2e2
2026-01-12 08:32:52 +01:00
Pierre Tachoire
c2e09d3084
ci: build only run cmd forbuild dev test
2026-01-12 08:28:03 +01:00
Pierre Tachoire
98397401b8
ci: use compiled v8 with wpt tests
2026-01-12 08:11:55 +01:00
Karl Seguin
e042b1105a
Merge pull request #1311 from lightpanda-io/nikneym/backport-canvas
...
e2e-test / zig build release (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
Backport dummy canvas APIs
2026-01-10 23:26:42 +00:00
Halil Durak
ee4775eb1a
prefer underscore on fields
2026-01-10 14:13:41 +03:00
Halil Durak
6ff6232316
move isHexColor to color.zig
2026-01-10 14:13:09 +03:00
Karl Seguin
10035ab2f4
add some missing APIs to Console
2026-01-10 17:45:25 +08:00