- From: Domenic Denicola <domenic@domenicdenicola.com>
- Date: Thu, 17 Oct 2013 20:45:50 +0000
- To: "Mark S. Miller" <erights@google.com>, James Graham <james@hoppipolla.co.uk>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
I think some example code helps this discussion. From what I can tell, Mark is concerned about code like this:
```js
if (rect instanceof DOMRectReadOnly) {
// ok, it's read only, so only its creator can write it
untrustedCode.doSomethingWithRect(rect);
// I can assume that rect has not change.
}
```
This code assumes that being an instance of DOMRectReadOnly means that only its creator can write it, which is what the contract implied by "read only" means. It assumes `untrustedCode.doSomethingWithRect` won't be able to modify `rect`, and thus it can assume on the next line it isn't changed.
However, under the proposed inheritance hierarchy, where a mutable DOMRect inherits from DOMRectReadOnly, this code could have its assumptions violated, if `rect` was a DOMRect.
This seems bad?
Received on Thursday, 17 October 2013 20:46:22 UTC