Hi,

The ModuleNamespace
<https://source.chromium.org/chromium/chromium/src/+/master:v8/include/v8.h;drc=5d658083d506ff1bf14abdd2221d94cbcf4fae96;bpv=1;bpt=1;l=1591?q=v8::Module>
object is the proper choice, you can have a look at the existing tests
<https://source.chromium.org/chromium/chromium/src/+/master:v8/test/cctest/test-api.cc;l=26235;drc=5d658083d506ff1bf14abdd2221d94cbcf4fae96;bpv=1;bpt=1?q=v8::Module>
.
For future reference, you will usually find (a bit hidden and obscure, I
agree) existing tests in V8's test-api.cc
<https://source.chromium.org/chromium/chromium/src/+/master:v8/test/cctest/test-api.cc>
.

Could you provide some more example code for the error you get
with persistent handles?

cheers,
Camillo

On Tue, 17 Nov 2020 at 01:11, Ben Ernst <boi...@gmail.com> wrote:

> I am migrating my V8 code from using "plain scripts" to using "ES6
> Modules". There are a few concepts that I am struggling with.
>
> First, how might I retrieve a class definition defined in a module?
> Previously I would have used the "global" object on the "context" (i.e.
> context->Global()), and found the class definition there. I can't find a
> good example on how to do that in a module. I am experimenting with
> Module::GetModuleNamespace(), but I'm not sure that I'm on the right track.
>
> Second, am I allowed to take a persistent handle to a module? I am finding
> that after restoring a module from a persistent handle, I encounter the
> failure below.
>
> #
> # Fatal error in C:\621300de\v8\src/api/api-inl.h, line 128
> # Debug check failed: allow_empty_handle || that != nullptr.
> #
> #
> #
> #FailureMessage Object: 0000006114FBC2E0
> ==== C stack trace ===============================
>
>         v8::base::debug::StackTrace::StackTrace
> [0x0,000,7FF,60D,F82,80B+27]
>         v8::platform::DefaultPlatform::PostJob
> [0x0,000,7FF,60D,F7F,1E1+401]
>         V8_Fatal [0x0,000,7FF,60C,251,B87+167]
>         v8::base::PrintCheckOperand<unsigned __int64>
> [0x0,000,7FF,60C,251,683+627]
>         v8::Module::GetStatus [0x0,000,7FF,60C,1E0,3FD+141]
>         v8::Module::GetModuleNamespace [0x0,000,7FF,60C,1D1,243+19]
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-users/6e1f91bb-9d1b-4e3e-b772-c1cdf71afb06n%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-users/6e1f91bb-9d1b-4e3e-b772-c1cdf71afb06n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
Camillo Bruni |  Software Engineer, V8 |  Google Germany GmbH |  Erika-Mann
Str. 33, 80636 München

Registergericht und -nummer: Hamburg, HRB 86891 | Sitz der Gesellschaft:
Hamburg | Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

Diese E-Mail ist vertraulich. Falls Ssie diese fälschlicherweise erhalten
haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter,
löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen,
dass die E-Mail an die falsche Person gesendet wurde.  This e-mail is
confidential. If you received this communication by mistake, please don't
forward it to anyone else, please erase all copies and attachments, and
please let me know that it has gone to the wrong person.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/CAOeS1i9mEbcpxGQr1uNk%3DfAMPDi%2Bz%2Bzkun0eiopfphqErJJLAQ%40mail.gmail.com.

Reply via email to