Re: [heycam/webidl] Add an algorithm to create a platform object. (#635)

Ms2ger commented on this pull request.



> @@ -12346,12 +12361,54 @@ It is the responsibility of specifications using Web IDL to state
 which global environment (or, by proxy, which global object) each platform
 object is associated with.
 
+<div algorithm>
+  To create a <dfn export>new</dfn> object implementing the interface |interface|, with either
+  a Realm |realm| or a `new.target` value |newTarget|, perform the following steps:
+
+    1.  If |newTarget| is provided, then:
+        1.  Set |realm| to [$GetFunctionRealm$](|newTarget|).

@bzbarsky makes an interesting point that this might not be the right realm after all. Assuming no other interfering bugs in the test case below, I see Gecko and WebKit using the constructor's realm, and Chrome using the NewTarget's.

<details>
<summary>Test</summary>

http://software.hixie.ch/utilities/js/live-dom-viewer/saved/6603

```html
<!DOCTYPE html>
<script>
function f(i) {
var dp = new DOMParser();
w(dp.parseFromString("x", "text/html").documentURI)

dp = new i.contentWindow.DOMParser();
w(dp.parseFromString("x", "text/html").documentURI)

class X extends DOMParser {}

dp = new X();
w(dp.parseFromString("x", "text/html").documentURI)

class Y extends i.contentWindow.DOMParser {}

dp = new Y();
w(dp.parseFromString("x", "text/html").documentURI)
}
</script>
<iframe src=document onload=f(this)></iframe>
```

With `http://software.hixie.ch/utilities/js/` stripped from all results:

| Test | Gecko | WebKit | Chrome |
|-|-|-|-|
| parent `DOMParser` | `live-dom-viewer/` | `live-dom-viewer/` | `live-dom-viewer/` |
| subframe `DOMParser` | `live-dom-viewer/document` | `live-dom-viewer/document` | `live-dom-viewer/document` |
| subclass of parent `DOMParser` | `live-dom-viewer` | `live-dom-viewer` | `live-dom-viewer` |
| subclass of subframe `DOMParser` | `live-dom-viewer/document` | `live-dom-viewer/document` | `live-dom-viewer` |

</details>

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/pull/635#pullrequestreview-202211112

Received on Monday, 11 February 2019 16:41:39 UTC