
raw_ptr<T> has a non trivial destructor so using it will cause "Complex class/struct needs an explicit out-of-line constructor/destructor" errors. This CL adds destructors to fix them. For classes that have inlined constructors, this CL avoids the errors by excluding the fields. Bug: 1272324 Change-Id: I4f2c5c84be7fa1975c2d57e944a7ef20aa8aaa25 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3294657 Reviewed-by: David Bertoni <dbertoni@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org> Reviewed-by: Weilun Shi <sweilun@chromium.org> Reviewed-by: Carlos Caballero <carlscab@google.com> Reviewed-by: Bartek Nowierski <bartekn@chromium.org> Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org> Commit-Queue: Keishi Hattori <keishi@chromium.org> Cr-Commit-Position: refs/heads/main@{#944565}
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.