►
From YouTube: 11-02-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
All
right
so
hello,
everybody
and
welcome
to
this
week's
node.js
api
meeting
for
11th
of
february
2022.
A
All
right,
so
I
have
the
the
milestones
up
here
and
the
first
milestone
that
we
go
through
is
the
stale
issues,
let's
see
at
the
bottom.
A
A
A
So
I'm
imagining
that
we're
waiting
for
the
the
original
poster
of
the
pr
to
add
those
two
methods
to
to
the
pr
and
then
I
think
that
will
be
good
to
go.
Does
anybody
else
have
any
comments
on
this.
A
Nope,
okay,
then
we
can
move
on.
Then
we
have
this
one
here
tracking
issues
for
failure
on
crash.
I
believe
the
gendercast.
This
was
one
that
you
were
working
on.
Then
we
said
that
we
have
a
workaround
in
the
main
branch,
so
it
does
not
crash
there.
A
Does
this
work
around
actually?
Is
it
released
and
deployed,
and
is
it
fixing
this.
B
A
Okay,
so
is
there
anything
that
you
need
from
us
to
help
you
with
this,
or
are
you
just
waiting
until
you
have
more
time.
B
B
Or
anything
like
that
at
blue,
there
is
a
link
in
the
open
issue,
so
it's
probably
on
the
top
of
the
issue
so
and
there's
a
diff
to
make
it
crash
on
the
test.
So
the
steps
to
reproduce
it
is
to
apply
the
diff
and
to
investigate
if
it
is
the
issue
on
the
node.js
core
or
is
just
a
misuse
in
the
test
case,.
A
Okay,
that
makes
sense
to
me.
So
let's
put
some
comments
in
here.
B
A
All
right,
so
we
can
comment
on
that
anything
else
to
discuss
for
this
before
we
move
on
nope.
Okay.
So
then
I
added
this
one.
It's
not
as
it
was
never
stale,
but
I
just
didn't
want
to
lose
track
of
it.
A
A
So
until
then
you
basically
have
to
make
sure
that
the
the
the
c
string.
That's
that
points
in
the
accessor
is
always
allocated
until
you
actually
construct
the
class,
and
I
don't
know
if
we
want
to
do
anything
about
that
in
the
code
or
if
we
want
to
have
some
sort
of
documentation
change
to
say
that
if
you're
using
a
c
string,
then
you
have
to
ensure
that
the
remember
the
allocated
memory
for
that
c
string
is
present.
Until
you
call
the
an
api
defined
class.
A
Does
anyone
have
any
comments
on
that.
A
Okay,
okay,
I
think
that
would
be
a
pretty
easy
fix.
I
think
I
don't
know
if
I
still
have
it
open
here.
Accessor.
A
Yes
right
here,
so
we
basically
accept
you
know
the
con
string
like
I
was
mentioning,
and
then
we
just
passed
to
it
a
getting
the
c
string
pointer
and
are
you
suggesting
that
instead,
this
method
should
copy
the
contents
so
that
it
could
own
the
string
and
then
pass
it
to
the
successor.
B
A
Otherwise
the
programmer
would
need
to
make
sure
that
the
the
std
string
is
properly
in
scope
until
they
actually
define
the
class
and
I'm
not
ex,
I'm
not
sure.
If
that
can
always
be
the
case.
A
A
Right,
okay,
so
then
the
question
is,
I
think
we
have
another.
A
We
then
have
a
another
one
here,
where
you
can
actually
just
pass
in
the
the
pointer
for
your
c
string
in
this
instance.
Should
this
accessor
method
also
copy
the
contents.
B
I
don't
believe,
though,
since
especially
when
you
have
a
static,
static,
constant
string,
which
is
like
say
you
have
a
not
it's
not
about
the
state
string.
You
just
write
it
there
with
the
column,
double
column
and
the
right
string,
content
and
then
the
double
column.
Then
we
don't
need
to
copy
it.
Since
it's
always
there.
A
Okay,
so
then
we
just
need
to
modify
this
method
that
has
the
std
string.
Okay,
I
think
that
makes
sense.
C
B
A
A
I
see
I
see
so
if
we
were
to
copy
the
string
into
the
accessors,
but
this
just
calls
an
api
property
descriptor
description
name
and
then
it
returns.
The
descriptor
I
see
so
would.
B
C
Yeah
the
problem
can
I
can
just
finish
up
what
my
point
so
the
thing.
Actually,
if
we
decide
to
copy
the
string,
each
string
copy
would
require
extra
memory
location.
So
in
this
sense,
if
effect
doubles
the
work,
because,
in
the
end
of
the
day,
we
still
need
to
create
internal
v8
string.
So
I
would
rather
prefer
us
in
this
case,
to
create
a
name
like.
B
C
Let's
see
like
second
accessory
overload
and
actually
create
a
string
based
on
this
string,
create
a
factory
value
which
we
can
pass
instead
of.
A
I
I
see
what
you're
saying-
and
I
was
thinking
that
as
well,
but
the
issue
is
that
in
this
accessor
creator
creation
we
do
not
have
an
an
environment
to
create
the
string
on
because
the
the
environment
gets
passed
when
you
define
the
class
and
then
internally
in.
I
think
I
still
have
it
here.
A
Maybe
I
don't
anymore
inside
the
the
core
is
where
we
would
check
if
you
passed
a.
C
All
our
wrapper
classes
typically
have
environment
wrapped
up
right.
A
The
they
do,
but
not
this
the
property
descriptor
does
not
from
what
I
can
recall.
Let's
see
if
I
can
pull
that
up
quickly,
can
I
do
class.
A
Because
these
are
static
methods
that
return
a
property
descriptor
and
you
can
basically
create
them
without
an
environment,
and
then,
when
you
do
the
define
class,
that's
when
you
do
have
an
environment
and
the
core
then
actually
creates
the
napi
value
from
the
from
the
string
pointer
at
that.
At
that
point
we
need
to
find
the
class.
C
Okay,
so
my
my
concern
like
let
me
let
me
say
like
because
my
concern
with
two
strings:
two
string
is
not
trivially
sized
class
like
on
60
64
bit
platform.
It
will
take
you
48
bytes
right,
so
it's
it's
if
we
put
it
inside
a
property
descriptor
itself,
so
instead
of
pointer
size,
property
descriptor,
it
becomes
like
pretty
sizable
one.
It
becomes
64
64
bytes
instead
of
8
bytes.
B
Yeah,
if,
let's
say,
if
people
just
don't
like
to
copy
the
string
for
a
short
hand,
they
can
already
do,
they
can
already
create
the
accessor
with
the
const
characters
and
the
they
can
also
create
the
accessor
with
a
bit
as
they
just
could
by
the
name.
B
Right:
okay,
there
are
alternatives
for
this
method.
Even
they
are
using
steel
string.
They
can
manage
their
own
steel
string
and
pass
in
a
steel
string
c
string.
That's
that
is
the
constant
character.
A
Right,
okay,
so
I
guess
we
we've
discussed.
Maybe
from
what
I'm
hearing
now
is
two
different
approaches.
A
Yes,
yes,
okay!
Now,
I'm
not
exactly
sure
how
we
would
then
decide
on
which
one.
A
I
property
descriptor.
A
I'm
going
to
up
the
data
and
two
add
a
new
overload
to
create
a
property
descriptor.
A
C
Overload
can
be
useful
in
situations
and
people
building
this
name
dynamically.
I
mentioned
they
have
like
a
something
full,
plus
one
or
two
plus
two
right.
So
this
the
fact
that
string
will
be
dynamic
and
in
order
to
keep
his
dynamic
string,
we
can
provide.
We
can
say
if
you
provide
environment,
then
we
create
name
for
you.
It
will
be
extra
cool
but
will
be
no
extra
location.
B
C
Obviously,
we
need
to
update
documentation.
I
guess
because
pretty
much
in
both
cases
like
if
we,
if
we
change
something
or
don't
change,
something,
we
definitely
need
to
say
one
way.
A
Or
another
right
right,
I
think
it
would
be
beneficial
like
to
put
in
the
documentation
for
the
for
this,
for
this
string
method
here
that
the
the
data
for
that
string
has
to
be
present
up
until
we
can,
until
you
call
define
class,
I
think
that's
definitely
worthwhile
and
then
whatever
we
decide
here
then,
of
course,
would
also
need
to
be
documented.
A
I
think
before
we
make
any
decision
on
which
way
to
move
forward.
Let's.
C
We
can
look
at
some
code
to
tell
us
what
I
saw
sometimes
and
we
have
a
wrapper
class
to
be
pretty
much
the
same
pointer
size
as
a
wrapped
up
node
api
value.
We
often
do
just
some
kind
of
interpret
cast.
So
can
we
look
at
how
we
define
in
class
so
for.
C
If
we,
when
we
define
a
class,
do
we
pass
this
property
descriptors
as
a
kind
of
array
what
we
do
with
it
like?
We
can
proceed
one
by
one
to
convert
it
or
we
kind
of
convert
it
in
bulk
depending
it
will,
it
will
be
easy
to
kind
of
decide
like
do
you
want
to
kind
of
change
size
of
property
descriptor
or
not.
A
Right:
okay,
let's
see
here
so
we
have
a
couple
of
overloads
for
define
class.
We
take
either
an
initializer
list
or
a
vector
of
those
properties.
A
C
B
C
A
B
A
B
A
We
have
like
a
a
conversion
function,
yes
operator
of
this,
so
I
guess
this
just
returned.
Let's
see
what
this
does,
I'm
not
sure
the
best
way
to
search
for
that.
A
Okay,
so
it
just
returned
the
the
value
that
is
stored
here.
So
I'm
not.
I
don't
think
we
would
then
need
to
because
this
is
the
private
variable
here.
So
if
we
were
to
add
an
additional
member
to
this
class,
I
don't
think
we
would
need
to
modify
the
logic
there,
because
it
just
because
we
have
a
an
overload
to
return
that
specific
descriptor.
When
we,
when
we
do
the
cast.
A
C
A
C
A
To
add
the
overload
here,
I'm
just
not
sure
if
there's
always
a
case
when
people
are
creating
the
descriptors,
would
they
have
an
environment
to
pass
to
it?
A
I
mean
I'm
sort
of
leaning
towards
this,
the
second
one
personally,
but
I
think
we
could
table
this
for
the
for
discussion
next
week
and
get
michael
and
gabe's
input
and
see
what
they
suggest
as
well.
C
Can
I
put
just
a
third
idea
to
the
table:
absolutely:
can
we
have
like,
maybe
rather
than
extending
this,
this
kind
of
variation
of
option
one
rather
than
extending
property
descriptor
with
additional
field
and
changing,
maybe
some
existing
logic
and
stuff?
What
if
we
introduce
some
additional
pass?
C
You
know
it's
just
just
kind
of
throwing
the
new
idea
which,
which
will
do
it,
but
rather
than
kind
of
maybe
only
in
property
descriptor.
I
don't
know
something
like
this.
A
Okay,
all
right
I
mean,
while
we're
brainstorming,
absolutely
we
can
throw
some
more
ideas
out
there.
Okay
introduce
a
new
class
example,
owned
property
descriptor
or
something
descriptor
where
this
object
put
on
the
copy
sort
of
an
extension
of
idea
number
one:
oh,
we
can't
put
that
idea
one,
but
does
not
require
changing
existing
logic.
A
Okay,
we
will
table
this
discussion
for
next
week
when
we
have
more
members
to
discuss
and
can
create
and
can
reach
an
agreement
on
the
approach
to
use.
A
B
A
Then
we
have
tracking
issues
ported.
I
don't
think
there
has
been
the
number
of
oh
somebody.
Oh
okay,.
B
A
A
A
All
right,
then
we
always
go
to
npm
node,
add-on
api
and
then
just
take
a
quick
peek
here
to
see.
A
This
steady
increase,
I
suppose,
makes
sense
and
I
could
contribute.
I
attribute
this
decrease
here.
I
don't
know
if
you've
ever
discussed
it,
but
I
mean
it's
over
the
christmas
new
year's
holiday
breaks,
so
maybe
less
people
were
working
during
that
time,
which
makes
sense
to
me,
but
we
do
have
a
steady
increase
there.
A
Okay,
then
drive
towards
full
coverage.
A
A
Okay,
that
was
merged.
Okay,
then
maybe
I
just
need
to
do
a
pull
because
I
tried
it
the
other
day
and
was
not
there.
Okay,
then,
let's
go
to
enable
debug
testing.
We
talked
about
this
last
week.
I
don't
know
if
there's
any
additional
updates
since
then
I
don't
believe
so
so
we
will
just
continue,
because
I
think
michael
is
working
on
that
burn
down
list
of
issues
raised
by
module
owners.
A
There
was
one
that
came
in.
I
guess
that's
a
in
the
node
repo,
not
a
module
owner,
but
this
is
one
that
I
would
like
to
talk
about.
D
A
D
B
A
No
idea
what
this
is
about,
so
in
our
so
this
person
has
this
inline
string
of
test
string
here,
and
they
have
a
very
simple
module
here,
where
they're,
just
outputting.
B
A
Test
string,
but
now
under
c,
plus
plus
17
with
msbc,
you
do
not
get
the
the
string
output
and
this
is
because
it
gets
optimized
away
by
the
compiler.
You
end
up
getting
this
instead
and
the
poster
found
out
it's
because
we
have
this
in
our
node
api
header,
and
I
don't
know
what
this
is
supposed
to
do
or
why
it
was
added.
A
C
I
don't
have
much
knowledge
about
this
specific
section,
but
usually
people
have
similar
syntax
and
they
need
to
have
some
specific
session
inside
of
a
binaries.
I
guess
it
may
be
related
to
code
registration
and
on
the
first
glance,
this
proposal
to
use
this
pragma
inside
of
a
macro
definition
sounds
kind
of
reasonable
approach
to
me,
but
obviously
it
would
be
nice
to
ask
gabriel
about
opinion
and.
A
Gotcha,
okay,
so
let's
post
a
comment
here.
A
A
Let's
see
anything
new,
I
mean,
I
believe
we
have
some
really
old
issues
that
haven't
really
been
touched
on,
but
let's
start
from
the
top
and
let's
see
what
we
got.
A
Okay,
this
is
very
badly
formatted,
but
let's
see
the
original,
why
don't
I
get
away?
Can't
be
property?
Oh.
A
Looking
at
this,
I
think
this
person
just
needs
a
better
example.
I
think
it's
just
doing
something
incorrectly
you're
getting
this
no
pointer
issue
here.
So
I'm
just
going
to
ask
for
a
repo
that
reproduces
this
issue.
A
All
right
event
handling
through
javascript
when
it
is
minute
from
c
plus
plus.
This
just
sounds
like
a
thread
safe
or
an
async
worker,
or
something
like
that-
and
I
think
michael
had
already
commented
that
yes,
so
we
can
just
quickly
ask.
A
I
think
he
solved
it
because
he
needed
to
use
external
correctly.
Okay,
but
let's
see
something
so
in
this
issue,
is
it
possible
to
hold
a
void
pointer?
A
It
always
spits
back
invalid
handle
pass
to
function
if
I
pass
it
around
in
c,
plus
plus
it
has
no
problem,
even
if
I
wrap
it
in
an
external
and
then
unwrap
it
when
I
pass
it
to
js,
it
goes
out
of
scope
and
gets
freed.
A
That
doesn't
sound
correct
at
all.
I'm
a
little
unsure
what
he
means
by
when
he
passes
it
to
js,
because
the
only
thing
that
you
could
pass
to
js
are,
you
know,
napi
values,
one
of
which
is
the
external
and
the
poster
is
saying
that
wrapping
and
externals
work.
C
So
if
we
look
on
the
code
above,
it
looks
like
he's
calling
some
function
create
nor
handle.
So
I
guess
so.
We
need
to
ask
him
like
what
this
function
returns,
because
if
this
function
returns
some
kind
of
a
smart
pointer
to
this
handle.
So
obviously,
by
the
end,
then
this
function
finishes
up.
This
smart
pointer
will
probably
kind
of
destroy
the
handle
and
any
kind
of
roll
handle
which
been
inside
of
this
smart
pointer
will
become
effectively
kind
of
invalid.
C
C
Kind
of
issue,
I
believe
it's
not
the
issue
in
the
code.
We
should
have
a
node
api,
rather
issue
like
how,
with
what
this
handle,
is
about
what
exactly
this
function
returns
and
how
it's
been
used
right.
A
My
guess
just
looking
at
this
is
that
the
programmer
himself
needs
to
manage
the
memory
because
there's
a
create
and
then
a
free
here,
and
then
this
free
happens
in
the
finalizer
of
the
external,
and
that
would
only
happen
when
you
know
the
garbage
collector
runs
and
then
there's
no
more
instances
of
the
external,
but
that's
not
to
say
that
there's
something
else
that
may
be
freeing
this
handle
beforehand.
C
Yeah
he
meant
that
that
he's
kind
of
wrapping
up
within
sort
of
an
api
ex
external
sort
of
way.
A
Right
see
so,
of
course
like
if
you
pass
this
external
to
javascript
and
then
the
variable
that
holds
that
external
ends
up
going
out
of
scope,
then
it
will
be
garbage
collected
at
some
point
in
the
future.
It
sounds
like
they
need
to
create
a
reference
to
the
to
the
external
to
make
sure
that
it
doesn't
go
out
of
scope,
or
rather,
if
it
does
go
out
of
scope,
it's
not
garbage
collected.
A
C
I
think
it's
a
possibility,
but
he
would
probably
have
a
crash.
If
this
variable
get
collected
by
irish
collection,
then
he
kind
of
tries
to
use
it.
It
will
crash,
but
he
says,
like
a
handle
is
invalid,
so
somebody
invalidates
his
hand.
I
would
rather
kind
of
okay,
but
we
can
actually
have
two
theories
if
you
like,
so
I
would
say
we
need
to
see
what
what
is
create
new
handler
returns.
If
it
returns
a
smart
pointer,
then
they
need
to
use
some
kind
of
detach
method.
A
A
Okay,
yeah
because
good
to
me,
too,
okay
hi,
we
discussed
in
the
element
that,
if
you're
meeting
your
issue
and
came
up
with
some
theories,
all
right-
and
we
will
comment
on
this.
A
A
response
from
the
other
issue:
okay:
they
just
need
to
go
some
further
details,
all
right
that
makes
sense
to
me
and
then
this
one,
I
think,
could
be
our
final
one.
This
one
also
has
a
pr
associated
with
it.
Class
constructors
cannot
be
invoked
without
new
to
me.
That
makes
sense,
because
you
know
it's
a
class
constructor
and
that's
even
true
with
normal
javascript,
like
legend
cast
pointed
out
here,.
A
Then
there
is
this
pr,
let's
see-
and
this
is
some
comments
going
back
and
forth
with
the
team
as
well-
by
removing
the
error
throw
into
an
overrideable
static
method.
Default
behavior
remains
the
same,
which
is
good,
but
now
a
developer
can
override
a
non-constructor
and
their
object,
wrap
subclass
in
order
to
define
alternative
behavior.
C
So
we
discussed
this
issue
last
time
you
know.
Did
you
attend
last
time
meeting.
C
Okay,
so
basically,
overall
kind
of
thinking
was
actually
it's
a
good
good
change.
We,
if
you
scroll
down
a
little
bit,
I
can
summarize
there
like
a
few
points
and
kind
of
we
suggested
to
rename
this
method.
But
after
the
author
said
like
in
some
cases,
this
method
may
not
create
something,
and
I
propose
some
alternative
names
and
he
actually
chose
one.
So,
instead
of
a
non-constructor
method,
name
will
be
one
called
as
function.
C
B
A
D
Kevin
that
was
one
issue
in
the
node
add-on
api,
which
I
had
responded
earlier.
It
was
one
one
zero
three.
D
This
one,
though,
let's
see
I
replied
end
of
december,
so
so
I
did
some
performance
tests
and
he
had
complained
about
the
user
had
complained
about.
You
know
a
performance
drop
when
the
when
a
larger
module
is
exported.
So
I
wrote
a
script
to
you
know:
export
like
10
000
objects
right,
so
it
exported,
and
then
I
loaded
it.
D
So
what
I
found
is
mostly
it's
all
consistent,
there's
no
difference
between
a
smaller
module
or
a
larger
module
right,
but
that
is
a
so
the
end
I
have
given
some
performance
metrics,
but
but
the
very
first
time
the
module
is
loaded
at
that
time.
There's
a
slight
change
like
in
milliseconds
right,
a
smaller
module
loads
in
two
milliseconds,
whereas
a
a
larger
module
mode
loads
in
six
milliseconds.
D
D
D
In
both
cases,
but
in
this
case
like
there
was
a
few
millisecond
difference,
but
I
we
discussed
in
the
last
I
think
last
meeting
with
michael,
not
the
last
minute,
even
before
that
and
michael
said,
this
is
fine.
This
is
expected
because
on
load
it
is
supposed
to
and
if
you
feel
that
way,
probably
we
can
reply
to
the
user
and
then
probably
close
this
one.
A
Right:
okay,
just
want
to
do
a
quick,
simply
wrap
function;
okay,
all
right.
B
D
D
No,
the
call
time
I
was
checking
the
call
time,
but
the
very
first
call
the
very
first
call
was
always
taking
a
little
longer
for
a
larger
module,
but
every
all
other
calls
like
if
you
go
scroll
scroll
up
a
little
bit
with
the
script
which
calls
that
subscript
right
so
so,
every
time
I
make
a
call,
you
know
the
and
I
log
right
so
here
inside
the
loop.
If
you
see
I
am
logging,
it
right
so
scroll
up
a
little
bit
more.
I
forgot
this
has
been
a
while.
D
So
this
is
the
exported
module,
the
complete
exponent
with
10
000
functions,
and
if
you
come
down,
I
wrote
a
function
to
do
a
random
call
as
well.
Probably
that
is
something
I
did
not
put
here
or
so
so
anyway,
that
line
that
you
have
highlighted.
That's
where
I
was
calling
randomly
randomly
right,
basically
randomly
to
different
functions
within
that
larger
module.
It
didn't
make
any
difference,
except
for
the
first
call,
and
I
also
created
a
smaller
module
as
well
right.
I
call
the
smaller
module
and
the
larger
module.
D
The
smaller
module,
with
only
one
exported
function,
larger
module.
Ten
thousand
exported
functions,
the
smaller
module
and
the
larger
module
on
load.
There
was
a
difference,
but
after
that
it
was
all
the
same.
A
D
Okay,
that
was
what
michael
told
us
as
well.
So
probably
we
can
reply
to
the
user
that
this
is
expected
and
yeah
if
they
feel
that
this
is
okay.
This
is
what
they're
going
through
this
is
that,
if
this
addresses
their
problem,
then
probably
we
can
close
this.
A
A
A
All
right
that
sounds
good
to
me,
okay,
and
that
is
it
we
are
now
out
of
time.
Does
anybody
have
anything
they
would
like
to
quickly
bring
up
before
we
end
the
meeting.
C
A
C
Last
time
I
have
added
a
couple
of
discussion
points
to
the
main
repo
I
just
want
to
kind
of,
if
you
guys
can
comment
out
on
it
later
because
yeah
it's
about.
C
And
and
new
references
it's
in.
A
Discussions.
Okay,
yes,
do
you
know
this
is
fine.
A
C
Just
in
case,
if
you
have
something
like
I'm
interested
to
know
what
general
team
thinks
about
these
two
proposals,
gotcha.
A
Okay,
yes,
so
everybody
on
the
call,
if
you
have
some
time
to
look
over
this
and
put
in
your
two
cents,
that
would
be
great
and
then
we
can
discuss
it
next
week,
all
right
anything
else.
A
All
right,
then
we
will
go
ahead
and
close
the
meeting
for
this
week.
Everybody
have
a
good
weekend
and
we'll
catch
you
online.