RE: Figuring out easier readonly interfaces

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