
Deleting the context writes to the external pointer table and to the heap, hence we must enter the isolate before deleting the context. This is blocking a new DCHECK in v8: https://crrev.com/c/6387098 For consistency, we should also move the HandleScope from the `PerContextData` destructor to the `ShellRunner` destructor, but this causes failures in other users of `PerContextData`, so this is left for a follow-up CL. Drive-by cleanup: Remove `using` declarations which were mostly not used, and if they were then inconsistently. R=mlippautz@chromium.org Bug: 396607238 Change-Id: I110a72c047d3a719e9606fc98f32f2b0536bb656 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6394240 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#1438234}
Gin - Lightweight bindings for V8
This directory contains Gin, a set of utilities to make working with V8 easier.
Here are some of the key bits:
-
converter.h: Templatized JS ↔ C++ conversion routines for many common C++ types. You can define your own by specializing Converter.
-
function_template.h: Create JavaScript functions that dispatch to any C++ function, member function pointer, or base::RepeatingCallback.
-
object_template_builder.h: A handy utility for creation of v8::ObjectTemplate.
-
wrappable.h: Base class for C++ classes that want to be owned by the V8 GC. Wrappable objects are automatically deleted when GC discovers that nothing in the V8 heap refers to them. This is also an easy way to expose C++ objects to JavaScript.
-
runner.h: Create script contexts and run code in them.
-
module_runner_delegate.h: A delegate for runner that implements a subset of the AMD module specification. Also see modules/ with some example modules.