►
From YouTube: 18 March 2022 - Node.js Node-API Team meeting
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
Okay,
all
right
hello
and
welcome
to
this
week's
meeting
for
the
node.js
api
for
18th
of
march
2022.
A
Before
we
get
started
with
our
typical
track,
does
anybody
have
any
announcements
they
would
like
to
make.
A
A
This
one
has
to
do
with
some
possibility
of
outdated
documentation,
and
there
is
a
pr
that
that
nick
has
opened
in
order
to
address
this
comments
to
class
property
descriptor,
to
explain
that
the
class
property
descriptor
is
a
helper
class
created,
and
I
guess
we
can
quickly
look
at
this
real,
quick,
all
right
property
descriptor
for
use
with
object,
wrap
and
instant
strap.
A
A
A
All
right,
this
looks
good
to
me
since
we've-
it's
not
just
taking
this
time
to
look
at
that
and
if
you
guys
want
to
you
can
also
go
on
your
own
time
and
take
a
look
at
that.
A
A
So
then
this
should
be
good,
except.
I
think
this
is
a
different
use.
This
is
a
different,
a
different
documentation
problem.
I
believe,
let's
see
this
is
the
same.
A
Okay,
yes,
so
just
to
recap
a
little
about
what
this
issue
was.
Is
that
when
you're
using
property
descriptors,
you
have
to
have
the
the
data
that
points
to
the
the
name
of
this
the
descriptor.
It
has
to
be
a
valid
pointer
up
until
you
call
the
define
class
method.
A
Otherwise
you
can
get
unbounded,
pointers
and
whatnot,
and
so
that's
what
this
pr
is
about
here.
Let's
take
the
property,
descriptors
values
of
functions.
A
A
Okay,
the
only
thing
that
I
see
is
this
little
typo
here.
A
All
right,
but
the
main
point
that
was
added
is
this
here:
it's
a
responsibility
of
the
caller
to
maintain
the
pointer
until
the
property.
Descriptor
object
is
no
longer
used.
B
A
I'll
just
put
that
as
a
single
comment
there:
okay,
so
that
handles
those
documentation
updates
there.
Then,
let's
see
this
one
is.
A
Yes,
the
gendercast.
I
believe
this
is
one
that
you
were
originally
looking
at.
Have
you
had
any
time
to
look
at
into
this
issue
any
further.
C
A
Then
we
have,
let's
see
this
one
marking
methods
as
const.
I
think
this
has
been
one.
That's
been
brought
up
a
couple
of
times.
The
issue
is
closed.
Does
that
mean
that
the
pr
was
merged.
B
A
All
right,
so
then
we
can
remove
this
comment.
This
one
here
mark
okay,
I
don't
have
the
ability
to
remove
it.
So
we'll
just
have
michael
remove
that
next
week
then,
and
then
I
think
that's
it.
Everything
else
is:
is
some
strikethrough
okay?
So
then
we
can
move
on
from
that
tracking
issue
modules.
Ported.
A
Let's
see,
there's
nothing
been
added
here,
but
we
usually
do
node
add-on
api
just
to
take
a
look
at
the
graph.
A
Okay
and
that's
that's
that
6.5
million
not
too
bad.
I
suppose,
then
we
can
move
on
driving
towards
full
coverage.
Did
anyone
else
join
the
participants,
jack
or
anyone?
A
A
I
think
it's
g,
conf
or
yeah.
I
think
that's
what
it
is
yeah
in
order
to
get
programmatic
coverage
of
our
code
instead
of
always
having
to
update
manually
some
markdown
or
some
issues,
or
things
like
that,
so
hopefully,
eventually
we'll
have
that
working
and
that'll
be
good,
enable
debug
testing
for
add-ons.
This
is
something
that
michael
has
been
working
on
and
I
don't
think
there
has
been
any
additional
work
since
then.
A
So
this
is
obviously
a
really
old
issue,
but
let's
see
worker
threads,
they
need
different
context.
Aware:
okay,.
A
B
Yes,
so
I
I'm
getting
this
pr
bitcoin
close
like
it
was
kind
of
different
thinking
how
exact
exactly
what
needs
to
be
done,
like
it's
still
kind
of
in
draft,
and
I'm
preparing
some
major
change
to
this.
This
approach,
so
idea
would
be
like
instead
of
creating
this
final
other
queue.
B
It's
what
I
was
thinking
about,
like
I'm,
trying
to
address
the
core
of
the
issue,
apparently
before
we
used
to
run
finalizers
as
a
part
of
our
second
garbage
culture
pass,
and
because
these
finalizers
can
throw
some
javascript
exceptions,
we
move.
This
finalizer
runs
instead
of
set
immediate.
So
if
any
exceptions
raised
this
exception
will
be
part
of
this
unhandled
exception
header
inside
of
node.js,
instead
of
popping
up
in
some
random
node
api
calls,
but
I
think
like
we
can
have
alternative
solution
to
it.
B
So,
instead
of
running
them
from
a
set
immediate,
we
can
still
run
them
from
gc
second
pass,
but
if
we
have
any
kind
of
exception,
rather
than
bubbling
them
through
with
node
api
call
functions,
random
functions,
we
can
call
the
same
a
handler
exception,
a
handled
exception
handler
from
node
and
also
on
top
of
it.
We
can
add,
where
I'm
adding
this
new
finalized
exception,
header
per
module,
so
thankfully
every
module
owner
can
choose
to
handle
this
exception.
B
The
way
they
want,
or
otherwise
it
will
be
handled
as
today,
through
unhandled
exceptions
and
unhandled
exceptions
effectively.
If
we
have
a
handler,
if
it
can
be
even
written
inside
of
javascript,
so
it
can
be
handled
in
such
javascript.
If
it's
not
handled
on
the
process
level,
it
will
cause
support.
It
actually
causes
node
to
be
destroyed.
A
Right,
I
guess
that
was
one
of
the
questions
that
I
have,
but
I
think
you
answered
it,
and
that
was
what,
if
the
the
developer
does
not
add
the
the
module
level
uncaught
exception,
and
then
I
believe
it
would
just
continue
to
behave
as
it
would
by
calling
the
process
event
for
on
caught
exception.
Is
that
correct?
Yes,
right?
Okay,
so
then
there's
no!
No
major
change.
That's
needed
in
order
to
to
implement
this.
This
behavior
of
the
the
calling
of
how
it
already
is,
there's
no
like.
A
B
B
B
Do
it,
it
will
behave
exactly
as
today.
The
only
difference
will
be
that
these
finalizers
will
be
called
as
a
part
of
gc
second
pass,
instead
of
from
set
immediate
right,
okay,
which
will
address
this
issue
that
I
was
originally
raised
by
the
develop
developer
in
this
1140
like.
A
B
A
Okay,
then,
let's
see,
then
we
can
go
to
regular
issues.
So
michael
opened
this
one
up.
I
guess
today
there
is
a
hang
in
one
of
the
thread:
safe
calls
thread
safe
tests.
A
A
I
have
seen
it
happen
in
the
past,
where
it's
actually
the
previous
one,
but
I
guess
one
of
the
questions
that
I
had
because
he
says
that
it's
consistent
on
debbie
and
eight
I'm
wondering
if,
like
how
long
it's
been
occurring
as
a
problem,
and
I
try
to
look
into
sort
of
this-
the
build
runs,
but
I'm
not
too
familiar
with
this
whole
interface.
Here.
A
And
since
I
said
it
could
be
this
one
or
it
could
be
this
one,
I
think
it
may
need
to
be
to
be
done
on
both
so
I'll.
Just
leave
that
as
a
comment.
That's
just
sort
of
what
we're
thinking
here,
because
this
test
has
been
around
since
the
existence
of
the
type,
let's
say
functions,
and
then
these
tests
are
actually,
I
guess,
ports
of
existing
frets
say
function,
the
the
first
implementation
one.
A
A
And
that's,
it
was
also
failing
on
tsfn.
Maybe
writing
the
tests
in.
A
Okay,
so
that's
all
that
really
say
here
and
then
we
can
take
a
look
at
this
on
time.
Permit
so
I'll
make
a
comment
on
that.
A
Then,
let's
see
this
one
here
I
have
been
working
on.
I
did
finish
the
formatting
of
the
javascript
files.
So
now
I
have
to
do
the
same
for
the
the
c
plus
files
and
then
the
basically,
the
approach
that
I'm
taking
is
running.
Eslint
fix
for
the
whole
code
base
and
then
going
through
the
non-automatically
fixable
ones,
which
are
mainly
talking
about
casing
unused
variables,
confirm
const
the
triple
equals,
and
then
these
no
lone
blocks
here
there's
a
couple
of
no
evals,
but
that's
part
of
the
test.
A
All
right,
we
discussed
the
memory
leak
already.
We
hinted
at
the
code
coverage
earlier
today.
I
think
this
one.
We
were
asking
for
clarification.
A
What
did
I
say
yeah,
I
don't
want
to
say
the
exact
same
thing,
though,
can
you
provide
your
code
in
a
repo
for
us
run
and
look
at.
A
A
That
you're
able
to
actually
run
that
code
that
the
thread
say
function
is
using
on
the
same
like
tick
or
whatever
that
you've
created
the
thread
say
function
and
then
what
he
said
is
that
what
he
was
sort
of
expecting
is
that
when
you
can
start
the
thread
that
the
javascript
in
that
thread
will
also
run.
A
But
what
he
was
seeing
is
that
all
the
threads
were
first
getting
started.
And
then
this
exited
main
function
calls
and
then
his
his
thread
say
functions,
get
called,
and
I
explained
that's
base.
That's
because
the
way
that
his
his
creating
the
threat
say
function
in
the
same
tick
and
all
of
the
the
requests
to
run
the
thread
say
function.
A
They
get
queued
up
up
until
there's
a
you
know,
a
free
cycle,
so
basically
his
the
his
javascript
code
was
still
running,
which
was
creating
all
of
these
threads
and
then
that
piece
of
code
had
to
stop
so
that
the
thread
say
functions
could
actually
empty
their
cue
and
that's
sort
of
what
I
described
here
and
I
think
what
he
was
sort
of
requesting
now
was
maybe
put
some
like.
I
guess
document
that
that
behavior
and
I
think
that
may
be
worthwhile.
A
Because
I
guess
it's
not
completely
understood
that
that's
how
that
would
behave
that
the
third
say
function
like
you
have
to
end
your
current
execution
cycle
of
wherever
the
tia.
The
thread
safes
are
being
created.
In
order
for
that
cue
to
be
processed.
A
And
then
the
follow-up
question
he
had
was
this
make
call
back
and
to
be
100,
honest,
I'm
not
exactly
sure
what
the
mate
callback
is
supposed
to
be
used
for.
I
think
it
has
something
to
do
something
with
calling
it
in
an
async
fashion
like
if
you're,
not
in
a
in
a
current
javascript
scope
or
something
like
that.
A
A
The
above
behavior,
in
that
your
current.
A
A
I
don't
know
if
I
can
put
a
quote
in
here
like
that:
yes,
okay,
I
guess
that
is
all
that
I
will
say:
does
anybody.
C
A
A
A
Okay,
this,
I
think
I
don't
recall
what
this
one
is:
constructor
must
explicitly
initialize
the
base
class,
okay
yeah.
That
is
part
of
part
of
what
we
do.
A
I'm
gonna
run
yarn.
Okay,.
A
B
A
Okay,
anyway,
that's
been
a
while
okay.
A
To
call
back
info
argument
to
a
object,
wrap
contractor.
A
Okay,
I
we're
not
gonna
go
through
all
of
these
issues.
Obviously,
let's
jump
over
to
the
core
to
see.
If
there's
any,
does
anybody
have
anything
here
that
they
would
like
to
explicitly
bring
up.
B
Last
time
we
discussed
about
this
macro
issue
and
with
this
special
section
about
this
axis,
crt
xcu,
probably
that
I'm
going
to
work
on
it,
but
I
didn't
have
chance
to
work
on
it
yet.
But
I
did
some
notes
after
that.
So
thankfully
there
is
a
stack
overflow
article,
which
says
exactly
how
it
needs
to
be
done.
Something
clear.
I
I
kind
of
my
plan
is
actually
try
to
go.
B
If
you
scroll
down
a
little
bit,
this
first
answer
so
the
proposal
here
that
if
we
we
use
c
plus
plus
we
don't
do
anything
fancy
for
both
for
any
kind
of
compiler.
We
can
just
simply
use
normal
static
initialization.
B
You
can
see
if
they
have
c
plus
plus.
So
we
can
just
do
this.
It
will
be
like
any
compiler.
But
if
it's
msvc
compiler
and
we
have
c
language,
then
we
do
this
very
kind
of
fancy
stuff
with
axisu
and
then
for
other
compilers
we're
using
the
standard
we're
using
kind
of
non-standard
but
attribute
constructor.
B
A
Okay
right,
so
I
guess
you're
concentrating
on
the
finalizer
issue.
First,
before
moving
over
to
this.
A
C
I'm
still
waiting
for
the
reply
from
anna
and
how
she
would
like
this
pr
to
be
shaped.
So
the
point
is,
I
still
didn't
get
her
suggestion
on
why
we
needed
to
do
more
modifications
to
this
pr,
since
we
didn't
change
any
synchronous
or
asynchronous
callback
in
this
pr.
So
I'm
still
waiting
for
ns
reply.
C
A
Right
this
could
be
closely
related
since
you're,
also
working
on
uncaught
exceptions.
B
Okay
yeah,
when
you,
if
you
could
also
look
on
my
pr
after
I
I'll,
include
you
in
in
the
comments.
So
we
can
see
a
new
version
because
we
can
attach
and
sounds
like
a
both
pr
slash
exactly
same
code,
at
least
about
finalizers.
A
Yeah
there's
finalizer
stuff
happening,
so
we
need
to
make
sure
enforce
uncaught
exceptions,
policy
yeah
so
since
you're
also
touching
that
vladimir
it'd
be
beneficial
to
sort
of
get
an
understanding
of
how
both
of
these
pr's
come
into
play
and
if
there
would
be
any
conflicts
from
them.
B
A
Okay
and
I
guess
that's
it:
does
anybody
else
have
anything
else
that
they
would
like
to
bring
up
or
discuss
before
we
close
it
for
the
week?
A
I
did
have
one
thing.
Vladimir,
you
had
posted
your
that
discussion
about
versioning
right.
Did
we
ever
have
a
discussion
about
this
with
the
team.
B
No,
we
didn't
really
talk
about
it
and
I
tried
to
bring
it
in
my
latest
pr,
but
decided
it's
too
much
like
so
I
can.
But
ideas
was
that
if
we
want
to
change
some
behavior
or
we
want
to
fix
some
bugs
with
an
existing
function,
so
instead
of
creating
new
function,
what
if
we
provide
some
kind
of
feature?
B
It's
like
imagine
some
kind
of
a
beat
we're
saying
like
this
bit
set
and
not
set
depending
on
this
bit.
We
can
you
can
pick
functionality
and
then
try
to
implement
stuff.
Like
this,
I
found
that
it's
not
so
easy
to
provide
default
behavior,
because
apparently
our
native
modules
have
different
entry
points.
B
My
initial
inclination
was,
we
have
some
structure
called
an
api
module,
an
appendix
core
module
and
in
the
end
of
the
structure
we
have
four
reserved
pointers.
B
So
I
was
hoping
that
I
can
use
one
of
them
and
this
approach
works,
but
it
seems
like
we
have
alternative
ways
to
create
modules
and
that's
what
I
actually
want
to
kind
of
discuss
with
people
who
know
more
about
node.js
magic
modules.
B
What
what
I
would
say
my
question:
what
are
all
possible
ways?
People
can
create
modules.
Today
you
can
register
native
modules.
A
Right,
I
see.
Okay,
I
didn't
know
there
were
multiple
ways,
but
I
guess
you
know,
because
I
primarily
just
work
on
the
add-on
wrapper.
So
it's
it's
kind
of
limited
in
in
that
sense,
maybe
there's
some
additional
underlying
ways
that
that
it
could
be
done
that
I'm
personally,
not
aware
of
so
then
yeah.
Maybe
we
can
bring
this
back
up
for
discussion
then
next
week,
when
we
have
more
of
the
team
online.
B
Okay,
but
let's
say
if,
if
you,
if
you
do
have
any
thoughts
about
this
subject
yourself.
A
Yes,
well,
I
was
with
my
thought:
I
was
not
sure,
like
how
the
user,
how
the
developer
would
would
would
sign
up
for
these
additional
features
or
setting
these
features
on
and
off
and
how
we
would
guard
in
our
code
for
those
features
saying
that,
if
you're
using
this
feature
set,
then
this
is
the
behavior
and
whatnot.
A
A
You
know
to
have
to
have
additional
feature
sets,
but
I'm
just
not
sure
the
best
way
to
make
it
be
abi
stable.
A
If
that
makes
sense
where,
if
we
do
make
some
sort
of
changes
to
the
like,
I
guess
the.
A
A
You
know
that
that
should
be
fine,
but
we
need
to
make
sure
in
in
terms
of
abi
stability.
You
know,
because,
if
we're
not
changing
the
prototype,
the
inputs
or
the
outputs
or
anything
like
that,
then
it
it
should
be
okay
in
the
stability
standpoint,
but
we
need
to
make
sure
that
we're
able
to
still
like
I'm
not
sure
how
those
functions
would
change
in
order
to
check
that
the
user
has
turned
on
and
on
or
off
these
various
features.
B
Basic
idea
that
we're
creating
environment
for
each
module,
so
it's
never
creating
new
module
unity,
module
we'll
create
an
environment
for
it.
So
thankfully
we
can.
We
can
have
those
different
feature
flags
to
be
defined
per
module
right.
So
an
idea
that
imagine
that
I
I,
for
example,
want
to
fix
this,
get
all
properties
function.
This
get
wall
properties
function
today
does
not
process.
I
think
it's
a
configurable
flag.
It
does
not
process
configurable
plug.
Today,
it's
gonna.
B
There
is
a
bug
right,
but
if
somebody
already
relies
on
this
bug
behavior,
if
we,
if
I
fix
this
back,
people
will
be
broken
right
right.
A
B
B
A
B
Environment
like
if
this
bit
set
and
depending
on
this
bit,
we
can
say
we
go
to
this
fixed
route
or
we
we
follow
this
unfixed
rules.
A
Right
right:
okay,
yeah,
the
I
mean
that
sounds
stable
to
me,
so
we
can
just
continue
to
gather
input
from
the
rest
of
the
team
to
see
what
what
everyone
else
thinks
then.
B
And
I
think
we
have
this
machinery
being
implemented,
but
I
still
need
to
have
scenario.
I
probably
will
do
it
in
this
example
for
this
configurable
filter
for
get
all
properties,
because
right
now
there
is
a
bug.
We
we
pass
the
parameter,
configurable
filter,
but
internally
we
use
the
varietable
filter.
A
Yeah
sounds
like
a
bug
to
me:
okay,
yeah.
That's
the
really
the
last
thing
that
I
wanted
to
bring
up
to
make
sure
that
you
know
it's.
It's
not
lost,
and
you
know
it's
on
the
table
for
things
to
discuss
all
right.
Anybody
have
anything
else
before
we
close
it
for
the
week.
A
All
right,
then,
everyone
have
a
good
weekend.