New issue
Advanced search Search tips

Issue 811029 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

@@unscopables objects in the DOM should have a null prototype

Reported by bzbar...@gmail.com, Feb 10 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:59.0) Gecko/20100101 Firefox/59.0

Steps to reproduce the problem:
See https://github.com/heycam/webidl/issues/496

What is the expected behavior?
Object.getPrototypeOf(Element.prototype[Symbol.unscopables]) is null.

What went wrong?
It's not null.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 66.0.3343.3 (Official Build) dev (64-bit)  Channel: n/a
OS Version: OS X 10.12
Flash Version:
 

Comment 1 by bzbar...@mit.edu, Feb 10 2018

I really wish bugs.chromium.org would stop randomly switching which account I'm logged in with to the wrong account.  Please either change the account this is reported from to the right thing or delete this issue.  :(

Comment 2 Deleted

Comment 3 Deleted

Comment 4 Deleted

Comment 5 by bzbar...@mit.edu, Feb 12 2018

This is NOT a devtools problem.  It's a problem in the DOM bindings implementation.  Please move this to the right place.
Components: -Platform>DevTools Blink>DOM
Labels: -M-66 -FoundIn-66 -Target-66 -Needs-Triage-M66
Thanks Boris. Routing to the DOM team.

Comment 7 by hayato@chromium.org, Feb 13 2018

Cc: peria@chromium.org yukishiino@chromium.org
Components: Blink>Bindings
Status: Available (was: Untriaged)
I think binding-team can look this.
yokishiino@, peria@, could you have a chance to look?

Comment 8 by peria@chromium.org, Feb 13 2018

Owner: peria@chromium.org
Status: Assigned (was: Available)
I'll take this.

Comment 9 by peria@chromium.org, May 3 2018

Blockedon: 839389
This issue is so simple that this shouldn't be blocked on anything.

https://cs.chromium.org/chromium/src/third_party/blink/renderer/bindings/templates/interface_base.cpp.tmpl?rcl=2698ab2e0135bd4b62a4e472eceb3174592bf605&l=997

We just need to define @@unscopables as ES null.

Thanks for correcting my understanding.  :)

Comment 13 by peria@chromium.org, May 25 2018

Blockedon: -839389
Labels: Hotlist-Bindings-IDLCompiler
Just FYI,

3.3.24. [Unscopable]
https://heycam.github.io/webidl/#Unscopable

and

3.6.3. Interface prototype object
https://heycam.github.io/webidl/#interface-prototype-object
step 8.1. Let unscopableObject be the result of performing ! ObjectCreate(null).
creates an unscopable object with |null| prototype.

Owner: yukishiino@chromium.org
Status: Started (was: Assigned)
Let me take this issue.
I made a patch at: https://chromium-review.googlesource.com/c/chromium/src/+/1098914

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9facfb326a2423094a52109eb40177fc942d3f8a

commit 9facfb326a2423094a52109eb40177fc942d3f8a
Author: Yuki Shiino <yukishiino@chromium.org>
Date: Fri Jun 15 08:49:06 2018

v8binding: Changes @@unscopables's prototype to ES null.

Implements step 8.1. of
https://heycam.github.io/webidl/#create-an-interface-prototype-object

Bug:  811029 
Change-Id: I0feb1c16cf12585db8847c82d4efa342701bebcb
Reviewed-on: https://chromium-review.googlesource.com/1098914
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567580}
[modify] https://crrev.com/9facfb326a2423094a52109eb40177fc942d3f8a/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object-expected.txt
[modify] https://crrev.com/9facfb326a2423094a52109eb40177fc942d3f8a/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object.html
[modify] https://crrev.com/9facfb326a2423094a52109eb40177fc942d3f8a/third_party/blink/renderer/bindings/templates/interface_base.cpp.tmpl
[modify] https://crrev.com/9facfb326a2423094a52109eb40177fc942d3f8a/third_party/blink/renderer/bindings/tests/results/core/v8_test_object.cc
[modify] https://crrev.com/9facfb326a2423094a52109eb40177fc942d3f8a/third_party/blink/renderer/bindings/tests/results/modules/v8_test_interface_partial.cc

Status: Fixed (was: Started)

Sign in to add a comment