Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Object.getPrototypeOf(NodeFilter) should be Function.prototype, not Object.prototype #96

Closed
foolip opened this issue Mar 8, 2016 · 0 comments
Labels
☕☕ difficulty:medium Hard to fix ⌛ duration:short Should be a short fix

Comments

@foolip
Copy link
Member

foolip commented Mar 8, 2016

http://heycam.github.io/webidl/#interface-object

The internal [[Prototype]] property of an interface object for a callback interface must be the Object.prototype object.

This doesn't match Edge and Gecko, where Object.getPrototypeOf(NodeFilter) === Function.prototype holds true. It looks like this could be fixed by using the same language as for non-callback interfaces that don't inherit from any other interface:

If the interface doesn't inherit from any other interface, the value of [[Prototype]] is %FunctionPrototype%

This was discussed in #83 and I just noticed it in whatwg/dom#186 (comment)

#78 is also more general issue about the interface objects of callback interface objects.

@tobie tobie added bug ⌛ duration:short Should be a short fix ☕☕ difficulty:medium Hard to fix labels Jun 18, 2016
ayg added a commit to ayg/webidl that referenced this issue Aug 29, 2016
….prototype

Fixes whatwg#96.  Recent versions of Chrome, Firefox, and Edge all say
Object.getPrototypeOf(NodeFilter) === Function.prototype, whereas the
spec says Object.prototype.  nox reports in whatwg#83 that Safari does not
return Function.prototype here, but doesn't say what it does return.  It
seems the spec should match the majority of browsers, unless there's
some good reason not to.
ayg added a commit to ayg/webidl that referenced this issue Aug 29, 2016
….prototype

Fixes whatwg#96.  Recent versions of Chrome, Firefox, and Edge all say
Object.getPrototypeOf(NodeFilter) === Function.prototype, whereas the
spec and Safari say Object.prototype.  It seems the spec should match
the majority of browsers, unless there's some good reason not to.
ayg added a commit to ayg/webidl that referenced this issue Oct 27, 2016
….prototype

Fixes whatwg#96.  Recent versions of Chrome, Firefox, and Edge all say
Object.getPrototypeOf(NodeFilter) === Function.prototype, whereas the
spec and Safari say Object.prototype.  It seems the spec should match
the majority of browsers, unless there's some good reason not to.
ayg added a commit to ayg/webidl that referenced this issue Oct 27, 2016
….prototype

Fixes whatwg#96.  Recent versions of Chrome, Firefox, and Edge all say
Object.getPrototypeOf(NodeFilter) === Function.prototype, whereas the
spec and Safari say Object.prototype.  It seems the spec should match
the majority of browsers, unless there's some good reason not to.
ayg added a commit to ayg/webidl that referenced this issue Oct 27, 2016
….prototype

Fixes whatwg#96.  Recent versions of Chrome, Firefox, and Edge all say
Object.getPrototypeOf(NodeFilter) === Function.prototype, whereas the
spec and Safari say Object.prototype.  It seems the spec should match
the majority of browsers, unless there's some good reason not to.
hubot pushed a commit to WebKit/WebKit-http that referenced this issue Feb 9, 2017
…bject.prototype

https://bugs.webkit.org/show_bug.cgi?id=167964

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline web platform test now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Object.getPrototypeOf(NodeFilter) should be Function.prototype, not Object.prototype
after the following WebIDL spec change:
- whatwg/webidl#96

This aligns our behavior with other browsers as the spec has been updated to match
the majority.

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
(WebCore::JSTestCallbackInterfaceConstructor::prototypeForStructure):

LayoutTests:

Rebaseline existing tests now that output differs a bit.

* http/tests/security/cross-frame-access-put-expected.txt:
* platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@211970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ryanhaddad pushed a commit to WebKit/WebKit that referenced this issue Dec 22, 2020
…bject.prototype

https://bugs.webkit.org/show_bug.cgi?id=167964

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline web platform test now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Object.getPrototypeOf(NodeFilter) should be Function.prototype, not Object.prototype
after the following WebIDL spec change:
- whatwg/webidl#96

This aligns our behavior with other browsers as the spec has been updated to match
the majority.

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
(WebCore::JSTestCallbackInterfaceConstructor::prototypeForStructure):

LayoutTests:

Rebaseline existing tests now that output differs a bit.

* http/tests/security/cross-frame-access-put-expected.txt:
* platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:


Canonical link: https://commits.webkit.org/185085@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
☕☕ difficulty:medium Hard to fix ⌛ duration:short Should be a short fix
Development

No branches or pull requests

2 participants