Commit Graph

7 Commits

Author SHA1 Message Date
Tim Miller
3b128b37e3 script: Fix GC tracing of compiled JSScript pointers in ClassicScript (#43933)
Stores the compiled JSScript pointer in a rooted location that is
traceable by the GC. This fixes a crash observed in an experimental C#
Servo binding that could not be reproduced in servoshell.

Testing: No automated deterministic way to trigger this problem.

---------

Signed-off-by: Tim Miller <innerlogic4321@gmail.com>
2026-04-06 04:44:37 +00:00
Gae24
e0fc0174fa script: Propagate &mut JSContext inside global_scope_script_execution.rs (#43473)
Pass `&mut JSContext` to `HTMLScriptElement::execute`, propagate it
inside `global_scope_script_execution.rs` and then switch to wrappers2
bindings.

Testing: A successful build is enough.
Part of #40600

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-03-20 10:51:33 +00:00
Gae24
bc1cd2ceeb script: bump mozjs to use SpiderMonkey 140.8 and set more compile options (#43020)
Set `mutedErrors_`, `noScriptRval`, `isRunOnce` compile options.

Testing: A test now passes
Part of #38378

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-03-10 17:02:19 +00:00
Sam
6c334f2811 script: Replace RAII of CallSetup and AutoEntryScript with a function wrapper (#42715)
As mentioned in #40600 we will need this to properly handle &mut
JSContext (we cannot pass it to drop) and I think this wrappers are
preferred ways of doing this in rust as it is safe to forget (not call
drop) which is unsound in this case (due to realm stack at least).

Revieable per commits.

Testing: Just a refactor, but should be covered by WPT

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-25 09:13:18 +00:00
Philipp Albrecht
adee703046 Move run_a_module_script() to GlobalScope (#41459)
Prerequisite for #40365.

Moving `run_a_module_script()` to `GlobalScope` will allow us to execute
module scripts on `WorkerGlobalScope`.

---

Relates to #23308

Signed-off-by: pylbrecht <pylbrecht@mailbox.org>
2026-02-22 09:14:39 +00:00
Sam
3f3c6a5d90 script: Pass more CStr(ing) instead of rust strings (#42135)
This is companion to https://github.com/servo/mozjs/pull/703 which makes
mozjs to use CStr(ing) in the API (where we would silently do conversion
in mozjs). This way we can avoid rust string -> c string allocations.

In the followup PR we should switch Error::Type and Error::Range to also
use CStrings internally, as they are converted to CString for throwing
JS exceptions (other get thrown as DomException object, which uses rust
string internally - although this gets converted to JSString somewhere).

Testing: It should be just refactor without any side effects so there
should be no changes to WPT results.
Try run: https://github.com/sagudev/servo/actions/runs/21328878448
Part of #42126

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-12 08:46:14 +00:00
Gae24
3748667775 chore: move ClassicScript related code to a new module (#42363)
As discussed on a [Zulip
thread](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Code.20organization/with/571886607),
move `ClassicScript` code to a new module.

Testing: A successful build is enough

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-02-05 12:32:38 +00:00