►
From YouTube: SES Meeting: Near Membrane Performance
Description
Mathieu shares progress on symbols as weakmap keys and Leo and Rick share performance figures for near membranes.
A
Welcome
to
the
assess
meeting
today
is
april.
6Th
and
the
topic
for
today
is
symbols
as
weak
map
keys,
which
we,
which
I
hear
were
discussed
at
a
records
and
tuples
meeting
yesterday
right
and
and
we're
going
to
call
it
a
short
meeting
unless
that
topic
stretches
out,
and
we
have
decided
that
we
will
defer
the
topic
that
leo
brought
for
today
in
order
to
give
rick
and
rick
and
and
team
an
opportunity
to
prepare
material.
If
that's,
okay,.
B
I
I
actually
brought
them
here
like
karide
is
already
joined,
but
rick
just
joined,
so
we
can,
we
can
see
schedule.
Maybe
we
can
start
some
discussion
about
it.
A
All
right
cool,
well
matthew,
let's,
let's
start
with
your
topic
and
then
proceed
to
rick.
D
Yeah,
so
a
real,
quick
update.
Yesterday
there
was
the
records
and
tuples
monthly
meeting.
So,
as
we
all
know,
there
is
no
object,
placeholder
or
box
anymore
anywhere
near
the
recording
double
proposal.
The
approach
is
going
back
to
using
symbol.
As
with
map
keys,
there's
been
contention
about
what
kind
of
symbol
to
allow
in
which
map
keys
and
what
kind
of
symbols
to
disallow.
D
If
any,
I
think
everybody
has
agreed
that
registered
symbols,
things
that
you
can
get
from
symbol.4
providing
a
string
would
not
be
allowed
as
weak
map
keys.
D
The
next
type
of
symbol
is
a
unique
symbol.
Everybody
agrees
that
those
should
obviously
be
usable.
The
last
kind
of
symbol
is
well-known
symbols
which
are
expect
as
unique
symbols.
However,
they
are
somewhat
permanently.
They
will
never
really
be
collected
because
their
intrinsics
that
need
to
always
be
there.
Some
of
them
are
undeniable
in
the
current
realm,
maybe
all
of
them,
some
of
them
can
always
be
reached
again.
If
you
create
a
new
realm,
and
so
at
the
end
of
the
day,
it
doesn't
make
much
sense
to
use
those.
D
As
with
map
keys,
however,
there
were
arguments
made
that
it's
very
hard
to
test.
If
a
symbol
is
a
it's
a
well-known
or
not,
the
fact
that
it
shows
up
on
the
symbol.
D
Global
might
not
be
entirely
the
right
predicate,
because
there
may
be
host
install
symbols,
symbols
installed
by
shim
and
so
on,
which
technically
would
be
usable
in
wikimap
keys,
but
should
they
should
they
not
the
so
and
and
at
the
end
of
the
day,
the
situation
with
well-known
symbols
is
very
similar
to
object
to
some
other
undeniable
object
that
can
be
currently
used
in
as
keys
such
as
the
object,
prototype
and
so
on,
which
will
always
be
around
and
will
never.
E
E
So
hold
on
object.
Prototype
will
not
always
be
around.
There's
a
separate
object,
prototype
per
realm.
The
thing
that
is
important
about
the
the
undeniable
aspect
of
well-known
symbols-
that's
important
is
the
fact
that
you
recreate
them.
When
you
create
a
new.
D
Realm
in
your
current
realm,
where
the
weak
map
is
going
to
live,
the
object
prototype
will
always
be
around,
so
the
lifetime
of
object
prototype
will
always
be
as
longer
than
than
your
weak
map
instance.
E
D
I
think
that
sounds
like
I
mean
it.
It
sounds
like
a
bit
of
a
niche
case.
I
would,
I
would
put
it
under
the
same
kind
of
edge
case
like
if
someone
deletes
the
symbol
out
of
the
global
and
delete
shadow
realm
or
any
way
to
create
a
new
realm.
They
would
not
be
able
to
get
at
some
of
the
intrinsic
symbols
anymore,
either.
B
So,
to
give
a
better
perspective,
I
think
yesterday,
at
the
meeting
I
started,
I
bring.
I
brought
back
the
discussion
on
like
retrievability
of
objects.
I
know
when
we
talk
about
like
cross
realms
things.
We
can
recreate
the
well-known
symbols.
B
B
B
You
the
expectation
especially
talking
about
when
we
go
back
to
realms.
If
you
have
the
first
control
to
create
a
new
realm
and
like
control
for
the
first
initial
code,
you
can
control
access
to
the
well
done.
Symbols.
B
So
you
get
the
well-known
symbols
directly,
it's
different
from
the
registered
symbols
where
you
can
retrieve
them,
like
after
creation,
of
course,
like
all
I
are,
relatively
speaking.
Also,
I
think
one
of
the
other
reasons
was
that
you
have
a
predicate
today
for
registered
symbols.
B
You
have
no
predicate
today
in
the
language
for
well-known
symbols
like
so
when
you
distinguish
when
you
create
any
distinction
in
symbols,
you
have
symbols
that
are
registered
symbols
that
are
not
so
that
was
one
of
the
things
like
putting
well-known
symbols
apart,
and
that
was
one
of
the
conflicting
points
where,
if
you
want
to
distinguish
the
unique,
unique
symbols,
you
need
to
predicate
that
out
a
different
predicate
that
moves
in,
like
with
registered
symbols
and
well-known
symbols,
distincting
from
the
regular
singles.
E
E
For
me,
the
where
the
consensus
seems
to
have
landed,
that
registered
symbols
are
not
weak
map
keys,
but
well-known
symbols
and
anonymous
symbols
are
I'm
okay
with
that
in
the
sense
of
not
blocking,
but
this
but
but
I
will
say,
I
think
the
structure
of
the
argument
is
kind
of
backwards,
because
if
we
wanted
it
to
be
easy
to
check
that
something
was
or
was
not
acceptable
as
a
weak
map
key,
and
to
say
that
that
well-known
symbols
are
not
acceptable
as
weak
map
keys,
we
could
obviously
make
it
easy
to
do
that
check.
D
Unfortunately,
no
so
that's
what
we
wanted
originally
a
predicate
that
says
like
is
something
usable
as
weak
map
key.
However,
the
position
seems
to
be
that
a
predicate
that
just
returns
a
value
if
there
is,
should
not
change
its
its
answers
over
changes
in
the
spec.
So
if
today
we
don't
allow,
if,
tomorrow,
we
don't
allow
records
and
tuples
as
weak
map
keys
and
recorders
and
phones
introduce,
and
that
predicate
first
says
like
no
in
the
future.
That
predicate
will
always
have
to
say
no,
even
when.
D
Records
and
tuples
some
of
them
may
become
usable
as
witness
keys,
so
the
the
position
of
delegates
on
on
that
which
I'm
not
surprised,
but
I
I
do
understand.
The
argument
is
that
if
something
throws
it's
fine,
if
you
build
a
predicate
that
says
true
or
false
based
on
that
same,
would
it
throw
or
not
it's
not
okay,
to
have
that
as
an
api.
D
And
I
think
some
delegates
would
block
on
the
non
on
having
a
predicate
that
cannot.
E
B
Yeah
mark
there
was
also
like
a
shared
sentiment
as
well-known
symbols
are
pretty
bad
as
if
they're,
if
they
become
used
as
some
weak
map
keys,
but
that
the
has
some
precedent
in
the
language
when
I
was
talking
about
like
the
object,
prototype
and
the
function
constructor,
they
are
also
like
retrievable
in
the
sense
like
they
have
a
compromise
to
liveness
if
they
are
used
as
weak
map
keys
like
it
makes
no
sense
like
why
someone
wants
to
use
that,
but
acme
scripted,
those
for
no
control,
for
if
a
user
still
wants
to
use
to
do
that.
B
Like
it's
the
same
thing
like
we
don't
advise
anyone
to
to
use
a
well-known
symbol
as
a
weaknet
key,
but
we
are,
we
are
doing
no
specific
control
liveness.
Is
it
like
the
life
ecosystem?
For
for
that
value
is
compromised
as
okay,
but.
D
Yeah,
let
me
think
also
that
in
in
no
in
no
cases
there
would
be
an
editorial
that
clarifying
that
well-known
symbols
are
in
in
practice,
not
collectible,
and
so
for
the
definition
of
lightness
you
wouldn't
be
able
to
observe
their
liveness
and
or
anything
related
to
them.
E
Right
I
mean
they're
they're,
not
collectible,
so
that
they
any
implementation
of
a
weak
map
would
probably
need
to
make
a
special
case
for
them.
D
It
seems
that
implementations
today
they
just
create
an
instance
of
unique
symbol
and
and-
and
that
is
just
never
collected.
E
D
Correct
and
so.
D
We
need
to
figure
out,
but
it
seems
like
it
wouldn't
be
the
same
complexity
as
as
registered
symbols
for
which
there
may
be
many
and
which
is
basically
just
the
yeah.
E
Yeah,
I
got
it
okay,
so
let
me
just
I'll
just
say
one
more
thing
on
this
and
then
since
since
the
outcome
is
already
determined,
I
want
I
I'll
stop
after
this
one
more
comment,
which
is
the
real
screw-up
that
the
committee
made
in
which
you
know
I
was
on
the
committee
when
we
made
the
screw-up
is
that
well-known
symbols
should
have
been
registered.
D
It
should
have
too
late
for
that
yep.
I
wanted
to
also
give
a
quick
heads
up
that
there
is
implementation
concern
around
using
records
and
tuples
as
weak
map
keys.
D
The
complexity
of
course
comes
from
the
fact
that
records
and
tuples
don't
have
a
live,
really
livened
definition
of
their
own,
but
that
their
liveness
is
a
compound
concept
of
all
the
other
weak
map
keys.
They
contain
so
basically
all
the
deeply
nested
symbols
that
they
may
contain
unique
symbols
that
they
may
contain.
D
So
it's
surprising
to
hear
that
implementations
have
that
concern
and
they
may
be
pushing
back
on
that,
especially
because
ashley
actually
created
a
a
shim
in
in
entirely
in
javascript.
That
allows
to
do
this.
I
need
to
look
at
it
again
but
to
see
if
it
doesn't
have
other
kind
of
memory
leaks
issues,
but
it's
yeah
it's
it
would
be.
A
Great,
that
being
a
wrap
rick
or
leo,
would
you
like
to
start
off
on
near
membrane.
B
Yeah,
so
this
is
just
a
quick
update.
I
don't
have
anything
like
super
solid.
At
this
moment
we
have
shadow
rounds,
shadow
rams,
implementation
that
got
released
on
a
safari
technology
prevail
version
142.
If
I'm
not
wrong
and.
B
It
is
bringing
in
some
good
results,
but
I
need
to
have
more
solid
benchmarks
and
to
understand
everything.
One
thing
that
is
becoming
very
noticeable
is
the
memory
footprint
comparing
a
shadow
realm
with
with
iframes
performance
is
still
like
has
some.
B
I
still
have
some
questions
on
it,
because
a
lot
of
things
changes
if
I
have
the
console
the
browser
console
like
open
or
not
so
what
I'm
doing
here
and
I'm
using
a
not
super
new
version
of
the
code.
B
So,
while
I'm
sharing
this
a
quick
screen
here,
I'm
running
some
tests
where
I
have.
B
The
shadow
shadow
realm
like
I'm
running
and
I'm
loading
the
neo-main
brain
code
and
get
making
like
20
to
50
namespaces,
similarly
to
what
we
do
at
like
for
what
we
expect
to
to
use
in
within
salesforce
and
checking
like
the
difference
for
loading
them
like,
and
some
of
the
quick
runs
are
showing
like
shadow
realms
being
like
from
it's
usually
around
eight
times
faster,
two
from
two
to
eight
times
faster
right
now,
but
that's
more
due
to
like
memory
memory
usage,
it's
not
a
like
fa
like
speed
on
the
execution.
B
I'm
not
sure
if
this
is
super
visible.
Here
there
is
an
average.
These
are
early
tests,
so
the
results
are
not
super
beautiful,
so
I
have
high
frame
average
and
shutter
realm
average
time
in
milliseconds
to
load
this
code.
Let
me
get
an
example
here
of
what
I'm
running.
B
I-
and
this
is
not
the
earliest
version
of
what
rick
and
karidia
have
been
working
for
the
new
membrane
integration
with
the
shadow
realms,
but
we
are
now
being
able
to
to
get
some
real-time
results.
Let
me
close
the
console
here
to
show
the
code.
B
I
don't
know
how
to
remove
this
prevail,
screen,
yeah,
so
yeah.
I
am
using
this
near
membrane
to
get
like
some
quick
things
here
as
like
I'm
creating
an
instance,
and
I
have
some
dome
manipulation
inside
this
near
membrane,
just
to
make
sure
like
kind
of
like
I
want
to
reflect
a
little
bit
of
final
usage,
but
this
is
just
like
touching
the
surface
of
what
we
can
use.
I
do
some
evaluation
here.
B
This
is
using
the
nearing
brain
where
I
have
all
the
the
mappings
and
everything,
and
I
still
assert
like
that.
These
things
will
make
effect
and
I
have
the
same
thing
just
running
the
near
membrane
with
wi-frame
or
shadow
realm
in
my
code.
B
I
think
there
is
much
more
one
of
the
out
of
curiosity
curiosity.
I
was
trying
to
load
this
and
I
like.
I
saw
that
if
I
wanted
to
load
like
a
thousand
namespaces,
which
is
an
exaggeration,
I
couldn't
load
a
thousand
namespaces
with
iframes,
but
I
could
easily
load
a
thousand
namespaces
using
shadow
realms.
That
speaks
a
lot
to
the.
C
D
I
guess
the
saving
is
because
browsers
need
to
create
all
the
dom
structure
for
for
every
realm.
C
D
Yeah,
that's
where
the
creation
do
you
have
any
idea
of
the
performance
once
the
realm
is
created
on
interaction
through
the
shadow
realm
api
and
through
the
in
your
membrane,.
B
B
But
like
with
the
console,
I
get
like
speeds
up
like
very
much
faster,
but
I
need
to
understand
because
this
is
the
memory
footprint
that
is
talking
about
when
I
have
the
console
open
but
like
for
execution
time.
I'm
not
seeing
like
a
super
firm
result
right
now
to
share
it's
like
I,
I
can
tell
shadow
realms
so
far
with
the
neo-ring
brains
and
keep
in
mind
the
new
main
brains.
B
As
I
understand
they
are
not
highly
optimized
for
shadow
realms,
yet
they
are
optimized
today
for
the
iframes
work,
they're
like
using
yeah
rick.
I
know
I
see
your
face.
I
just
seen
like
I
I
expect
like
the
more
we
have
shadow
rounds,
the
more
we
can
focus
work
on
optimizing
users
on
shadow
realms
or.
C
E
Fall,
I'm
sorry.
I
missed
the
crucial
objective
near
membranes
or
what.
C
C
I
shouldn't
have
said
that.
Let
me
just
say
what
was
I
saying
near
membrane
is
currently
designed
with
the
shadow
realm
constraints
with
that
being
primitives
and
callable
passing
only
it
has
been
since
last
summer
into
fall
time
when
charity
and
I
oh
I'll,
say
carrie,
let
it
and
I
just
made
sure
that
it
was
on
the
rails
with
testing
and
stuff,
but
yeah
it
is
it's.
C
It
is
definitely
can
always
be
further.
Optimized
and
john
david
dalton
has
been
like
really
like
pressing
the
edges,
trying
to
figure
out
ways
to
reduce
the
number
of
proxy
trap.
It's
like
think
of
it
as
like
pile
up.
You
know
like
just
the
meta
object.
Programming
has
like
trapped
pile
up,
which
is
you.
A
C
Just
it's
acceptable
because
that's
just
how
net
object
programming
is
in
javascript,
it's
not
something
that
needs
to
be
changed,
but
it
is
indeed
something
that
we
are
able
to
figure
out
ways
to
optimize
around.
I
would
say
when
you're,
when
you
run
through
the
shadow
realm
path,
you
are
indeed
experiencing
an
even
playing
field
with
the
iframe,
I
mean
it's
actually
an
improved
playing
field.
C
Frankly,
because
I
don't
so
to
actually
matthew
answer
your
question,
I
don't
actually
anticipate
there
being
any
real
difference
in
terms
of
improvement
with
shadow
realm,
evaluate
versus
you
know,
eval
and
iframe.
They
don't.
Actually.
I
never
really
anticipated
that,
like
that's,
not
even
something
that
I
had
considered.
C
What
I
did
consider
was
the
initialization
cost
being
drastically
improved
and
that
you
know
that
was
like
my
you
know.
I
theorized
that
this
we'll
see
drastic
improvement
in
initialization
costs
of
creating
our
near
membrane
and
basically
building
the
near
membrane
world
inside
of
the
shadow
realm
that
has
certainly
improved
I'm
frankly,
it's
because
we're
not
creating
an
iframe
right,
we're
not
doing
we're,
not
we're
not
relying
on
dom
stuff
anymore,
to
build
our
virtual
environment.
We're
going
straight
to.
E
C
But
I
hadn't
given
much
thought
to
what
should
we
expect
in
terms
of
performance
of
actual
operation
execution
between
the
two
and
so
far?
I
don't
think
we're
seeing
anything.
That's
we're
not
seeing
any
any
negative
impact.
That's
for
sure
for
sure.
I
would
have
to
think
a
little
bit
more
deeply
about
how
we
could
how
we
could
measure
that
in
a
useful
way,.
D
I
wasn't
certain
how
your
near
membrane
was
structured,
but
I
figured
like
you
might
have
one
case
where
the
near
membrane
runs
on
top
of
the
callable
boundary
and
then
in
the
iframe
case.
You
basically
have
near
membrane
running
on
bare
metal
where
you
don't
have
the
wrappers
in
between,
but
you
still
have
the
you
call.
D
A
function
from
another
realm:
instead,
that's
what
I
was
imagining
and
I
was
wondering
if
the
global
binary
mechanism
was
introducing
a
performance
impact.
C
Gotcha,
so
in
order
for
us
to
do
that,
we
would
have
to
grab
a
historic
release
that
predates
our.
So
we
did
an
interesting
thing.
We
we
had
like
another
another
goal
internally
for
our
the
project
here
at
salesforce
that
uses
the
near
membrane
library,
which
I
won't
go
into,
because
it's
right,
because
I
can't
and
to
unlock
that
capability.
C
We
had
a
few
obstacles
in
your
membrane
and
carrie
actually
had
the
sort
of
the
foresight
and
realize
like.
If
we
just
do
the
work,
we
need
to
do
for
shadow
realms
now
now
being
like
last
summer,
then
that
will
help
us
unlock
this
other
capability.
So
we've
actually
had
a
callable
boundaries.
Implementation
that
we've
been
imposing
on
our
iframe
based
near
memory.
C
C
So
let
me
so
I
was
about
to
get
there
so
when
I
did
when
we
did
that
last
summer
fall
time.
I
did
do
a
few
measurements
that
were
basically
like
initialization
and
run
some
code
and
then
what
happens
and
like
what
is
the
the
outcome
and
there
were.
C
There
were
notable
regressions
but
the
for
our
case
security
trump's
performance
at
salesforce.
So
we
were
able
to
basically
say
like
this
is
a
cost
that
we
knew
would
happened
so
we're
going
to
float
it
through
on.
But
the
answer
to
your
question
is
that
yes,
that
certainly
does
have
have
an
unfortunate
additional
cost.
C
The
callable
boundary
is,
how
would
I
describe
it
nicely
it
and
also
because
we
are
proxies
all
the
way
down
on
lake
so
we're
we
have
this
notion
of
your
your
global
virtualization
target
and
when
the
top
level
window
is
your
virtualization
target,
you
have
to
proxy
everything
right.
C
We
only
recently
solved
the
how
to
do
this
lazily
and
then,
and
it
has
that
really
only
affects
initialization
time
so,
but
when
you're
in
band
like
everything
that
you
want
to
access
across
the
boundary,
which
is
just
like
everything
that
is,
you
know
dom
related
right.
The
cost
has
grown,
notably.
D
D
And
and
if
they
and
and
why
couldn't
engines
of
time
is
like
to
at
least
avoid,
like
you
know,
basically
save
the
the
traps
when
they're
when
they
complete
the
proxy
and
and
don't
query
a
handler
for
them
every
time.
Well,.
F
I
think
I
think
they
they
the
conversations
that
we
have
with
igalia,
at
least
from
what
I
remember
that's
doable,
but
it
will
not
help
that
much
wouldn't
right.
They,
in
fact
when
they
did
the
profiling
of
the
neo-membrane
implementation
that
we
have
and
so
on.
There
were
bigger
fish
to
fry,
especially
the
get
on
property
descriptors,
for
example,
that
one
was
a
big
one.
So
there
are
other
things
that
they
believe
will
give
us
a
a
little
bit
of
an
edge.
F
In
any
case,
when
you
read
our
code
everywhere
that
we
create
a
handler
or
something
like
that,
we
freeze
it
and
we
put
it
like
optimistic
optimizations
here
like,
but
I
have
an
interesting
conversation
as
well,
the
last
couple
of
days
with
axel,
since
he
published
the
the
blog
post,
and
we
have
been
going
back
and
forth
on
some
of
the
things
that
we
will
be
able
to
do
to
accommodate
people
with
very
little
membrane
kind
of
thing,
and
that
conversation
also
tried
drift
a
little
bit
into
the
performance
aspect
of
these
things.
F
D
F
D
You
that
it's
possible
to
have
the
handler
at
each
prototype
of
the
handler
via
proxy,
because
we've
done
that
in
in
the
set
gym.
Hopefully
we
can
get
rid
of
that,
but.
F
Yeah,
but
I
think
so
far
so
good
things
are
looking
good
from
from
all
point
of
views.
I
would
say
we
were
able
to
switch
that
very
quickly.
Everything
seems
to
work.
F
We
just
need
to
do
a
lot
more
tests
and
the
optimizations
are
going
to
be
our
primary
case
for
the
next
few
months.
I
would
say,
like
continue
optimizing
that
I
think
jdd
and
rika
has
been
wonderful,
trying
to
figure
out
what
what
the
heck
is
slowing
down
the
thing
there
is
a
lot
of
back
and
forward
between
the
two
sides
of
the
membrane.
That's
that's
the
biggest
problem
like
you
have
to
go
back
and
forward
thousands
of
times
on
any
operation,
and
that's
like
so
we'll
see.
C
In
addition
to
that-
and
this
is
I'm
gonna
preface
this
with
this-
probably
not
a
conversation
for
this
group,
but
it's
something
I
want
to
discuss
here,
because
if
you're,
if
any
of
you
are
in
a
position
to
to
see
how
this
impacts
your
your
work,
if
you're
you
know
migrating
into
using
shadow
realms
one
strange
thing
that
we've
encountered,
which
is
like
the
last
bug
that
we
have,
that
is
identified
by
our
our
unit
tests,
which
is
that
and
I
so
basically
what
I
think
this
is
caused
by
is
when
we
try
to
create
this
lowercase
word
window
object
in
our
shadow
realm.
C
That
is
like
virtualizing,
like
it's
a
virtualized
real
window
and
it's
I.
I
think
that
there's
something
going
on
and
there
was
a
leo
linked
me
to
a
maybe
what
wig
or
some
damn
thing.
I
have
no
idea
conversation
about
event,
error
or
target
or
something
I
don't
know
if
that
is
directly
related,
but
the
global
object
not
being
not
having
event
target
in
its
prototype
chain
inside
the
shadow
realm
when
you're
trying
to
map
that
global
to
vehicle.
This,
too.
D
C
D
D
It
out
and
then,
if
you
try
to
recreate
an
environment
that
looks
like
the
the
incubator
realm,
you
need
to
have
the
global
disk,
be
the
window
object
which
that's
funny.
C
Yeah,
okay,
so
I
don't
think
it's
a
problem
for
this
group,
but
I
would
like
to
get
this
group
thinking
about
it
so
that
we
can
like
pick
pile
on
whoever's
problem.
It
is
to
like
get
it
solved
when
the
time
comes,
because
that
is
actually
our
only
here's
a
weird
funky
funky
thing,
and
that's
basically
how
I
how
I
was
like
it's
like
when
you
get
to
this
thing.
It's
like
why
is
like.
Why
is
why
is
our
like
dunder
proto
chain,
not
working
correctly
here
either?
C
D
I'm
wondering
if
god
you
might
not,
I
mean
you're
never
going
to
be
able
to
have
it
entirely
right,
but
you
might
be
able
to
get
away
with
setting
a
proxy.
D
It's
gonna
set
a
proxy
as
the
prototype
of
the
global
this
and
trap
when
you
create,
when
you
have
assignments
or
something
like
that
and
create
them
in
the
window.
But
it's
not
you.
C
C
F
If
I
remember
so,
they
for
the
prototype
of
the
global
object
is
pointing
to
a
proxy
of
the
prototype
of
the
incubator
wrong.
Yes,
because
that's
possible
in
the
shadow
run,
but
not
possible
in
iframe.
So
in
an
iframe,
we
have
to
do
a
lot
more
work
because
we
cannot
replace
this
unforgivable,
so
we
have
to
go
and
wipe
out
whatever
that
object
has
and
then
put
a
bunch
of
linkage
to
the
other
one.
F
But
so
one
thing
that
I
do
want
to
spend
time
on
and-
and
I
promise
a
couple
of
times-
but
we
never
really
materialized.
It's
like
really
come
coming
to
this
meeting
and
explaining
what
we
have
more
of
the
perspective
of
how
the
people
might
be
able
to
use
that
specifically
aquatic.
I
think,
there's
a
lot
of
stuff
in
there.
F
That
might
be
interesting
if
you
spend
the
time
trying
to
reasoning
about
it,
and
so
I
wanted
to
do
that
from
that
perspective,
not
from
the
perspective
of
what
we
do,
because
it
might
be
quite
different,
but
I
think
there's
a
lot
of
nonsense
there
that
we
figure
out
that
that
might.
C
The
sort
of
the
closing
thought
I
had,
though,
on
the
other
bit,
was
that
the
argument
I
think
we
may
need
to
have
is
with
the
folks
specking
out
what
gets
exposed
and
how,
in
in
the
shadow
realm,
it
might
come
down
to
like
asking
for
that
global
object
to
have
event
targeted.
C
So
we
might
want
to
think
about
that
think
about
the
implications
there.
I
don't
think
there's
a
rush
at
the
moment.
We
don't
have
a
rush
on
our
end
yep
I
mean.
D
Inventory,
I
I'm
not
sure
I
followed,
like
I
think,
having
having
target
available
in
in
the
shadow
realm.
It
is
a
global
object
there
that
can
be
used
as
a
target
of
global
evidence
that
would
have
been
on
the
window
seems
acceptable,
but
I
I
don't
I
don't
know.
I.
F
D
So
what
is
your
need
for
having
a
relevant
target
in
in
the
shadow
realm?
No
remember
the.
F
Thing
that
that
we're
doing
is
virtualizing
the
incubator
wrong,
so
we
do
a
full
virtualization,
not
a
full
video,
but
every
translation
of
the
main
window.
So
when
you
run
code
inside
the
shadow
room,
it
looks
like
it's
running
on
the
main
one
he's
just
running
inside
the
shadow
room
and
the
reason.
F
Because
we
want
to
prevent
side
effects
or
some
side
effects
on
the
main
window
on
the
integrator
round,
like
if
you're
trying
to
modify
prototypes
or
trying
to
modify
objects
that
are
dom
api
stuff,
like
that,
it
will
not
leak
into
the
main
window.
So
that's
the
the
first
step.
The
second
step
is
that
to
be
able
to
control
any
evaluation,
carry
on
by
the
sandbox
code,
the
code
that
we
run
inside
this
virtualized
environment.
F
So
if
they
do
any
kind
of
revolution,
eval
import
whatever
they
do,
that
thing
will
will
continue
to
run
inside
the
virtualized
environment.
It
will
never
leave
the
virtual
environment.
So
as
it
does
that's
a
use
case
there,
there
are
things
that
we
want
to
prevent
that.
We
don't
know,
we
don't
want
them
to
out
to
do
and
those
we
go
through
distortions.
F
They
are
other
cases
that
are
more
complicated
distortions.
Like
a
good
example
of
it
is,
like
you
insert
an
iframe
in
the
page
in
the
main
page,
and
normally
you
will
be
able
to
access
that
iframe
by
doing
a
window.frame,
the
frame,
zero
frame,
one
frame,
two,
whatever
the
frame
is
or
simply
just
doing
window
square
bracket,
zero,
one,
two.
Whatever
so,
don't
think
those
things
you
don't
see,
you
don't
see
them
inside
or
you
might
want
to
see
them.
We
don't
know
yet,
but
there's
some
debate
there,
but
those
are
complicated
distortion.
F
When
it
comes
to
the
assertions
of
a
simple
function,
it's
easy
because
you
just
want
to
swap
out
the
the
function
with
a
different
functionality
and
that
that
works
well.
But
the
main
goal
is
that,
like
the
code
runs
in
there,
it's
controlled
anything
that
is
the
the
code
is
attempting
to
use
or
call
or
whatever
trying
to
do.
We
we
might
have
control
over
that
by
having
some
distortions-
and
it
looks
like
it
is
a
main
window.
So.
F
Access
to
window
they
have
access
to
document.
They
have
access
to
everything.
It's
just
in
a
controlled
manner
in
in.
D
In
the
which.
F
F
Just
to
highlight
one
thing:
it's
like
this
virtualization
engine.
We
also
use
it
for
node
and
we
also
want
to
use
it
for
escort
or
any
javascript
environment.
So
the
core
of
it
is
the
same.
You
have
an
environment
that
has
a
global
object.
We
want
to
virtualize
that
to
have
a
high
fidelity
virtualization
of
that
thing
in
a
way
that
code
that
runs
inside
the
sandbox
is
in
some
ways,
control
go
ahead.
D
Yeah-
and
I
was
just
still
trying
to
link
the
dots
with
having
event
target
a
relevant
target
available
in
the
shadow
realm
itself,
and
if
it's,
for
example,
to
have
the
use
case,
I
can
think
of,
is
to
have
errors
and
then
those
errors
in
from
that
shadow,
realm
being
ratified.
D
D
Your
shim
can
grab
that
listen
to
those
and
have
a
distortion
that
when
the
code
goes
through
the
window
or
whatever,
like
the
prototype
from
the
target,
to
add
an
event
listener
on
the
on
the
real
on
your
version
of
a
global
disk
and
checks
for
some
evidence
like
it
would
either
get
the
evidence
from
the
incubator
realm
or
for
an
angled
errors,
or
things
like
that,
grab
them
from
from
the
local
source.
Well,.
F
F
So
it's
not
an
intensive
event
target,
but
we
might
still
want
to
share
the
event
target
inside
the
round
in
case
that
people
running
code
inside
the
sandbox
or
they
might
want
to
do
their
own
inventing
and
having
a
consolidated,
even
target
mechanism
or
a
meter
mechanism,
whatever
the
name
is
similar
to
what
they
do
in
node,
where
the
global
daisy
node
is
not
an
even
target
either.
F
I
believe
correct
me
if
I'm
wrong,
but
still
you
have
event
target,
you
can
create
things
and
you
can
do
things
without,
even
targeting
in
the
same
way
that
you
can
do
it
in
in
the
in
the
dom
sorry
in
the
in
a
page
in
a
window
without
having
to
do
anything
with
the
dom
itself.
So
it's
not
down
bound
at
that
point.
So
for
us,
none
of
that
matters
really
because
we're
going
to
replace
everything
anyways,
because
we
want
a
virtualization.
F
F
Yes,
so
if
I
can
replace
it,
then
I
will
replace
it
unless
there
is
a
strong
opinion
on
not
replacing
certain
things,
and
we
do
that
for
certain
things
that
we
just
keep
it
from
the
arena
shadow
round
intense,
but
most
of
the
things
we
just
replace
it
entirely,
but
I
I
think
the
the
event
target
thing
from
that
issue
that
was
happening
a
few
weeks
ago.
I
think
I
agree
that
should
be
I'm
there.
F
There's
no
reason
for,
in
my
opinion,
to
not
have
it
there,
even
though
the
global
object
is
not
an
even
target
index.
The
errors,
though,
were
a
little
bit
more
tricky
because
the
error.
F
F
Yeah-
and
I
do
agree
with
your
proposal
having
something
in
the
global
option
that
can
mimic
that
thing
and
can
be
standardized
and
so
on.
So
I
I'm
I'm,
I'm
I'm
supportive
of
that.
I
think
it's
going
to
be
more
clear
that
you're
dealing
with
a
place
where
errors
will
occur
and
you
can
listen
for
them
any
platform
and
they
make
sense
for
what
you
want
to
do
and
so
on
so
yeah,
I'm
okay
with
that.
F
F
Yeah,
hopefully
next
week,
maybe
we
will
be
able
to.
It
will
be
interesting
to
I'll
ask
axel
if
we
can
share
his
code,
say
100
lines
of
code
membrane
implementation
for
shadowrun.
E
F
He
refined
that
a
little
bit,
not
sure
if
it
was
intentional
enough,
but
it
turns
out
that
might
work
better
than
what
we
have
and
do
I
want
to
go
over.
It
is
only
100
lines
of
code
with
comments,
so
it's
very,
very
tiny.
Very
thank
you.
D
Looking
forward,
I
mean
your
original
ireland
thing
was
pretty
interesting,
so
yeah.
F
D
Yeah,
I
think,
since
this
is
the
biggest
complaint
about
chaturang
right
now,
that
you
need
complex
membranes
go
on
top
and
people
don't
know
how
to
do
that.
Obviously,
so
having
a
very
simple
thing
that
people
can
be
like,
oh
yeah
right,
that
would
be
great.