Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Issue 1085453003: IDL: Add support for [Unscopeable] on attributes and methods (Closed)

Created:
5 years, 8 months ago by Jens Widell
Modified:
5 years, 8 months ago
Reviewers:
haraken, bashi
CC:
blink-reviews, blink-reviews-bindings_chromium.org, vivekg_samsung, arv+blink, Inactive, vivekg
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Reland of IDL: Add support for [Unscopeable] on attributes and methods Adding [Unscopeable] to an attribute or method means it won't be found during name lookup with an object that has the attribute or method in the scope (i.e. using the "with" statement.) The mechanism that makes this happen is that the interface prototype object has a property named @@unscopables that is an object with a property for every unscopeable member named as the member. BUG=462916 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194091 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194272

Patch Set 1 #

Total comments: 1

Patch Set 2 : call FromJust() on ForceSet()'s result #

Patch Set 3 : install @@unscopables on prototype object #

Total comments: 19

Patch Set 4 : fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+327 lines, -138 lines) Patch
A LayoutTests/fast/js/unscopeable.html View 1 chunk +26 lines, -0 lines 0 comments Download
A LayoutTests/fast/js/unscopeable-expected.txt View 1 chunk +15 lines, -0 lines 0 comments Download
M Source/bindings/IDLExtendedAttributes.txt View 1 chunk +1 line, -0 lines 0 comments Download
M Source/bindings/core/v8/V8PerContextData.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/core/v8/WrapperTypeInfo.h View 1 2 3 chunks +5 lines, -5 lines 0 comments Download
M Source/bindings/scripts/v8_interface.py View 2 chunks +10 lines, -0 lines 0 comments Download
M Source/bindings/templates/interface.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M Source/bindings/templates/interface.cpp View 1 2 3 3 chunks +38 lines, -4 lines 0 comments Download
M Source/bindings/templates/interface_base.cpp View 1 2 2 chunks +2 lines, -9 lines 0 comments Download
M Source/bindings/templates/methods.cpp View 1 2 1 chunk +20 lines, -27 lines 0 comments Download
M Source/bindings/templates/partial_interface.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/templates/partial_interface.cpp View 1 2 2 chunks +21 lines, -1 line 0 comments Download
M Source/bindings/tests/idls/core/TestObject.idl View 1 chunk +2 lines, -0 lines 0 comments Download
M Source/bindings/tests/idls/modules/TestPartialInterface3.idl View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M Source/bindings/tests/results/core/V8ArrayBuffer.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8ArrayBuffer.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8ArrayBufferView.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8ArrayBufferView.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8DataView.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8DataView.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8SVGTestInterface.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8SVGTestInterface.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestException.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestException.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface.cpp View 1 2 3 chunks +5 lines, -6 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface2.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface2.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface3.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterface3.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceAccessors.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceDocument.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEmpty.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventConstructor.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventConstructor.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNode.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceNode.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestNode.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestNode.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestObject.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestObject.cpp View 1 2 3 6 chunks +59 lines, -3 lines 0 comments Download
M Source/bindings/tests/results/core/V8TestSpecialOperations.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestSpecialOperations.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestTypedefs.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8TestTypedefs.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8Uint8ClampedArray.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/modules/V8TestInterface5.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/modules/V8TestInterface5.cpp View 1 2 2 chunks +2 lines, -3 lines 0 comments Download
M Source/bindings/tests/results/modules/V8TestInterfacePartial.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp View 1 2 3 3 chunks +28 lines, -4 lines 0 comments Download
M Source/core/testing/Internals.h View 1 chunk +3 lines, -0 lines 0 comments Download
M Source/core/testing/Internals.cpp View 1 chunk +9 lines, -0 lines 0 comments Download
M Source/core/testing/Internals.idl View 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 29 (6 generated)
Jens Widell
PTAL Note the slight weirdness that WebIDL has "unscopeable" (with an 'e') while ECMAScript and ...
5 years, 8 months ago (2015-04-20 13:33:03 UTC) #2
haraken
LGTM https://codereview.chromium.org/1085453003/diff/1/Source/bindings/templates/interface_base.cpp File Source/bindings/templates/interface_base.cpp (right): https://codereview.chromium.org/1085453003/diff/1/Source/bindings/templates/interface_base.cpp#newcode427 Source/bindings/templates/interface_base.cpp:427: prototypeTemplate->Set(v8::Symbol::GetUnscopables(isolate), unscopeables); Should we check a return value ...
5 years, 8 months ago (2015-04-20 14:00:13 UTC) #4
Jens Widell
On 2015/04/20 14:00:13, haraken wrote: > LGTM > > https://codereview.chromium.org/1085453003/diff/1/Source/bindings/templates/interface_base.cpp > File Source/bindings/templates/interface_base.cpp (right): > ...
5 years, 8 months ago (2015-04-20 14:04:03 UTC) #5
bashi
On 2015/04/20 14:04:03, Jens Widell wrote: > On 2015/04/20 14:00:13, haraken wrote: > > LGTM ...
5 years, 8 months ago (2015-04-20 23:17:09 UTC) #6
Jens Widell
On 2015/04/20 23:17:09, bashi1 wrote: > On 2015/04/20 14:04:03, Jens Widell wrote: > > On ...
5 years, 8 months ago (2015-04-21 06:41:19 UTC) #7
bashi
LGTM
5 years, 8 months ago (2015-04-21 07:16:43 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1085453003/20001
5 years, 8 months ago (2015-04-21 07:35:36 UTC) #11
commit-bot: I haz the power
Committed patchset #2 (id:20001) as https://src.chromium.org/viewvc/blink?view=rev&revision=194091
5 years, 8 months ago (2015-04-21 07:52:02 UTC) #12
alancutter (OOO until 2018)
A revert of this CL (patchset #2 id:20001) has been created in https://codereview.chromium.org/1100053002/ by alancutter@chromium.org. ...
5 years, 8 months ago (2015-04-22 04:05:45 UTC) #13
Jens Widell
PS#3 moves the installation of @@unscopables from the prototype template to the prototype object. For ...
5 years, 8 months ago (2015-04-22 10:19:02 UTC) #14
haraken
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode930 Source/bindings/templates/interface.cpp:930: {% from 'methods.cpp' import install_conditionally_enabled_methods with context %} install_conditionally_enabled_methods ...
5 years, 8 months ago (2015-04-22 10:54:51 UTC) #15
Jens Widell
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode930 Source/bindings/templates/interface.cpp:930: {% from 'methods.cpp' import install_conditionally_enabled_methods with context %} On ...
5 years, 8 months ago (2015-04-22 13:04:52 UTC) #16
haraken
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode930 Source/bindings/templates/interface.cpp:930: {% from 'methods.cpp' import install_conditionally_enabled_methods with context %} On ...
5 years, 8 months ago (2015-04-22 13:10:32 UTC) #17
Jens Widell
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode930 Source/bindings/templates/interface.cpp:930: {% from 'methods.cpp' import install_conditionally_enabled_methods with context %} On ...
5 years, 8 months ago (2015-04-22 14:22:10 UTC) #18
haraken
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode950 Source/bindings/templates/interface.cpp:950: {% if is_partial %} On 2015/04/22 14:22:10, Jens Widell ...
5 years, 8 months ago (2015-04-22 15:36:10 UTC) #19
Jens Widell
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode950 Source/bindings/templates/interface.cpp:950: {% if is_partial %} On 2015/04/22 15:36:10, haraken wrote: ...
5 years, 8 months ago (2015-04-22 16:37:07 UTC) #20
haraken
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode950 Source/bindings/templates/interface.cpp:950: {% if is_partial %} On 2015/04/22 16:37:07, Jens Widell ...
5 years, 8 months ago (2015-04-22 17:02:27 UTC) #21
Jens Widell
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode950 Source/bindings/templates/interface.cpp:950: {% if is_partial %} On 2015/04/22 17:02:26, haraken wrote: ...
5 years, 8 months ago (2015-04-22 17:08:04 UTC) #22
Jens Widell
https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp File Source/bindings/templates/interface.cpp (right): https://codereview.chromium.org/1085453003/diff/40001/Source/bindings/templates/interface.cpp#newcode950 Source/bindings/templates/interface.cpp:950: {% if is_partial %} On 2015/04/22 17:08:04, Jens Widell ...
5 years, 8 months ago (2015-04-22 17:15:13 UTC) #23
haraken
LGTM
5 years, 8 months ago (2015-04-22 17:21:15 UTC) #24
Jens Widell
On 2015/04/22 17:21:15, haraken wrote: > LGTM Thanks. I've confirmed that I can reproduce the ...
5 years, 8 months ago (2015-04-23 05:33:09 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1085453003/60001
5 years, 8 months ago (2015-04-23 05:33:31 UTC) #28
commit-bot: I haz the power
5 years, 8 months ago (2015-04-23 08:04:59 UTC) #29
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=194272

Powered by Google App Engine
This is Rietveld 408576698