►
From YouTube: Node.js N-API Team meeting - October 7 2019
Description
A
A
B
C
B
D
C
A
Let
me
know
if
you
need
me
to
do
anything:
okay,
no
worries
Thanks,
okay,
so
the
first
one
is
building
add-ons
with
see
me
I.
Think.
Last
time,
Jim
had
taken
the
action
to
check
what
the
behavior
was.
If
you
tried
to
use
it
and
you
didn't
have
the
executable
right
hosted,
that
info
goes
go
ahead.
Yeah.
B
A
B
E
E
E
E
A
B
B
A
B
A
B
A
But
I
think
it's
it's
good
to
be
able
to
say
there's
these
two
options,
there's
some
pluses
or
some
to
each
of
them,
and
that's
a
good
starting
point.
Then.
Once
for
example,
if
node
adopts
C
make
as
its
core
thing,
then
you
know
you
might
say:
okay
and
the
preferred
one
is
now
C
make
as
well
for
or
the
the
modules
or
you
know
you
might
say,
there's
a
third
one.
I
don't
know
yeah.
F
B
B
We
do
we
do
have.
We
do
have
an
example
focused
specifically
on
creating
an
add-on
using
C,
make
it's
kind
of
a
decision
you
make
for
the
package
you're
either
going
to
use
ship.
Are
you
gonna
use
C
make
its
so
anyway
there
there
is
an
example
out
there,
but
moving
forward.
You
know
we
might.
We
might
do
new
examples
based
on
C
making.
E
E
A
Right
I
mean
I
think
that
that's
like
looking
at
this.
It
really
says
to
me
it
should
be
like
here's
another
option,
but
it's
not
I
know.
Chip
is
still
the
preferred,
often
right
so
maybe
leaving
Hannibal's
is
mostly
no
chip.
And
here,
if
you
want
to
use,
he
makes
yes,
here's
the
one
you
can.
You
make
sense,
Michael.
B
A
A
A
By
yeah
I
think,
that's
fair
enough!
So,
like
it's
saying
you
know
it's
no
longer
supported
by
by
Google,
and
you
know
the
the
project
just
discussing
what
we
should
be
doing
going
forward.
Is
it's
a
reasonable
one
right
like
cuz,
there's
some
risk
there
and
so
I
think
as
long
as
it's
sort
of
like
it
stays
await,
you
know
and
I'm
sure
you
will.
The
text
stays
away
from
being
like
this
is
just
crap.
A
B
A
A
A
A
B
A
C
C
E
A
A
C
A
A
D
C
A
A
A
A
A
E
B
A
C
C
A
D
A
D
B
A
D
A
G
A
A
B
C
B
C
B
Was
hoping
he
would
be
on
this
call
he
he
has
one
issue
and
I
I
I
know
I.
Have
it
in
the
back
of
my
mind
that
we've
we've
had
this
before,
but
he's
running
into
memory
allocation
issues
on
Mac
OS
in
node,
eight
and
I.
Remember
Gabriel,
you
had
it.
You
came
up
with
an
insight
as
as
to
a
specific
mechonis
compile
option
that
we
need
to
use
yeah.
B
C
E
A
G
G
E
C
No,
no
no
I
was
just
gonna
say
that
this
whole
thing
is
is
sort
of
winding
its
way
through
through
no
chip
as
well,
because
I
did
submit
a
PR
stream
to
have
this
added
by
default.
What
happened?
Was
they
backed
it
out
because
it
it
was
considered
a
cember
major
and
so
so
now
for
no
chip
version
stakes,
they're
going
to
concentrate
on
Python
three
support,
but
it's
gonna
be
there
in
seven,
so
I
think
rod.
He
emerged
it
or
he
submitted
a
PR
to
have
it
re
added
to
the
to
the
master
branch.
C
B
C
A
B
B
C
B
A
C
B
A
B
A
A
F
A
D
A
F
The
ambiguity
yes,
the
Constructors
for
the
methods
for
new.
Yes
and
it's
because
if
you
try
to
pass,
you
pass
a
function
pointer
and
it
doesn't
know
that
that's
a
function
because
it's
yeah
I'm,
not
sure
why
but
I
mean
it
makes
sense
logically,
but
I'm
not
sure
how
to
get
around
it.
It's
the
thing
right.
A
F
F
A
F
A
C
Nor
I
I
can't
remember
either
yeah
and
is
this
Kevin
is?
Is
this
one
of
those
things
that
that
only
pops
up,
if
you
use
it
like
it,
doesn't
prevent
you
from
from
actually
using
any
other
parts
of
the
library
right?
So
currently,
only
if
you
only
if
you
call
the
function,
then
it's
ambiguous,
right,
correct
and
and
okay,
and
is
there
a
way
to
call
it
that
that
that
you
know
makes
it
not
ambiguous?
C
So
while
it
is
less
convenient
to
call
because
you
have
to
specify
a
parameter
explicitly,
it
is
possible
it
is
that
correct,
correct,
okay,
well,
I,
then
I
guess
I,
guess
the
only
thing
we're
sacrificing
is
its
convenience
here.
Right
so
I
mean
I,
don't
know
if
I
don't
know.
If
that's
a
showstopper,
then
right,
so
we
still
have
the
overrides.
It's
just
that
you
cannot
use
them
as
as
intuitively
as
you
might
think
you
could
yeah.
You
know.
D
F
We
were
discussing
that
and
then
we
were
like
well
that
would
make
you
know
exponential
explosion
of
of
the
Constructors
and
then
I,
just
as
I
was
creating
the
copy
constructor
I
figured
since
this
issue
talks
about
the
new
constructors
I
might
as
well
add
this
ambiguity
to
it
and
sort
of
highlight
all
of
the
issues
there
and
that's
a
good
one.
Okay,.
A
F
A
A
C
C
Yeah,
okay,
yep
yeah
in
core,
so
so
basically
I
managed
to
get
it
to
the
point
where
it
is
very,
very
cheap
to
track
the
references,
because
I
just
use
a
linked
list
to
track
all
the
references,
strong,
weak
and
otherwise
is
okay.
And
so
you
know,
insertion
is
constant
time.
Removal
is
constant
time
and
and
the
only
time
that
you
have
to
traverse
the
list
is,
is
when,
when
the
environment
is
exiting,
and
then
you
might
go,
you
go
over
well.
C
The
improvement
that
I
made
based
on
on
testing
with
with
his
code,
was
that
there
are
actually
two
lists.
There's
one
that
has
references
which
have
finalized
errs.
That
is
the
final
as
a
function
pointer
is
non
null
and
then
there
are
all
the
other
references
and
basically
the
insight
I
gained
from
from
doing
the
testing-
and
this
was
sort
of
the
final
touch
on
the
PR-
was
that
that
you
have
to
run
those
those.
Those
are.
C
So
so,
on
the
other
hand,
if
you've,
if
you've
called
all
the
references
that
have
finalizes
the
the
other
ones,
don't
so,
there
is
no
chance
that
any
code
inside
the
add-on
will
run
if
you
delete
those
references
last
so
that
this
was
the
insight-
and
this
is
the
final
touch
and
it
works
and
it's
efficient.
We
no
longer
need
to
worry
about
restricting
this
to
worker
threads,
because
it's
so
efficient.
C
It
doesn't
matter
if
we
run
it
on
the
main
thread:
cuz
you're,
not
paying
almost
any
penalty
like
the
penalty,
you're
paying,
cannot
be
proven,
and
your
statistical
significance
basically
and
I
and
I
added
a
benchmark
to
to
test
just
that
and
the
benchmark
was
terrible
before
when
I
was
when
I
was
attaching
like
and
cleaning
up
callback
for
every
reference.
He
was
slowing
down
the
accident
finalized,
errs
by
like
forty
percent
and
since
so
yeah
that
come,
and
that
was
with
strong
statistical
significance.
And
so
now
it's
gone
down
into
basically
the
noise.
C
C
C
All
the
difference
is
the
difference
is
that
when
you
delete
the
reference
by
hand,
one
no
longer
has
to
detach
what
you
call
that
an
environment
cleanup
hook,
the
environment
cleanup
hook,
is
stored
in
like
in,
like
a
I,
don't
know
a
set
but
I
think
or
some
kind
of
data
structure,
and
so
for
removing.
It
is
very
expensive
because
it's
being
tested
for
uniqueness
and
that
kind
of
thing,
whereas
a
simple
linked
list
is
a
simple
linked
list.
C
So
so
there's
no
real,
there's
no
real
overhead
in
removing
environment
from
a
linked
list,
and
so
there
is
only
one
environment
clean
up
hook
and-
and
that
is
basically
the
one
responsible
for
deleting
the
Nappy
am
so
so
the
so
we
walk
this
linked
list
during
the
nappy,
amp
destructor.
So,
okay,
it's
it's!
It's
it's
a
simple
and
as
intuitive
as
it
can
be
made.
A
C
A
A
D
C
B
C
But
there
were
various
points
raised
about
about
interactions
that
can
happen,
hearing
environment
exit,
that's
that
would
that
would
cause
all
kinds
of
invalid
situations,
and
so
basically
the
conclusion
was
that
it
should
not
be
left
up
to
the
garbage
collector
to
to
you
know,
make
one
final
pass
to
delete
everything
before
the
right
environment
goes
down.
However,
it
can
be
left
up
to
the
implementer
of
the
environment
to
actually
perform
this
teardown,
and
that
was
the
final
word
like
yes,
no
js'
can
definitely
do
this,
and
so
I
was
like
okay.
C
Well,
if
it
can
do
it-
and
here
we
are
doing
it
yeah,
so
that's
basically
the
the
skinny
on
the
on
the
discussion
around
the
PR,
so
I
don't
see
a
reason
why
why?
This
should
not
go
in
and
and
it's
kind
of
been
under
the
radar
and
I'm
trying
to
raise
awareness
of
it
so
that
we
can
get
a
decision
one
way
or
the
other
yep.
C
C
C
C
I
just
wasn't
sure
no,
this
is
all
for
crying
out
loud.
They
always
open
it
and
I
always
lose
track
of
it.
Oh
here
we
go
yes.
Yes,
it
was
so
so
yeah
so
basically
and
I
saw
you
commented
as
well
about
about
the
not
throwing
if
a
boy
able-
and
so
another
issue
was
open
to
discuss
the
the
statuses
I
need
to
look
into
that
further,
but
it
sounds
like
it
might
be.
Good
now
good
to
go.
I
have
to
give
it
another
review
and
withdraw
my
objection,
and
then
it
should
be
okay.
C
C
C
I'm
kind
of
kind
of
I
kind
of
blame
myself
for
not
keeping
a
closer
eye
on
the
other
stuff
that
went
in
because
throwing
an
exception
should
never
be
the
way
to
go.
Originally,
we
had
intended
to
always
just
return
a
status
and
and
and
leave
it
up
to
the
the
add-on
to
throw
an
exception
or
not,
but
some
stuff
has
slipped
in
now
and
it
is
what
it
is
so
yeah.
C
A
C
Oh
I
see
yeah
one
that
doesn't
throw
oh
yeah
yeah
like
an
alternative
I'm,
not
sure
it
doesn't
seem
to
be
a
big
problem.
The
thing
is,
it
is,
it
is
the
error
case
right
sure.
Oh
yeah
it'll
work
most
of
the
time
all
right,
so
so
it's
not
so
bad,
but
I
guess
for
consistency,
II
and
for
any
other
semver
minor
additions
we
make.
We
should
really
really
make
sure
that
they
don't
introduce
additional
exception,
but
rather
introduce
additional
status.
Is
it
possible
yeah?
Absolutely?
Okay!
That's
that's!
That's!
That's
the
lesson.