| 1557 | |
| 1558 | == `[Unforgeable]`(i) == #Unforgeable |
| 1559 | |
| 1560 | Standard: [https://heycam.github.io/webidl/#Unforgeable The spec of Unforgeable] |
| 1561 | |
| 1562 | Summary: Indicates that the attribute or operation will be reflected as an ECMAScript property in a way that means its behavior cannot be modified and that performing a property lookup on the object will always result in the attribute’s property value being returned. In particular, the property will be non-configurable and will exist as an own property on the object itself rather than on its prototype. |
| 1563 | |
| 1564 | Usage: [Unforgeable] can be specified on interfaces, on non-static attributes and on non-static operations. The IDL looks like: |
| 1565 | {{{ |
| 1566 | [Unforgeable] |
| 1567 | interface XXX { |
| 1568 | readonly attribute unsigned long length; |
| 1569 | DOMString getString(DOMString key); |
| 1570 | }; |
| 1571 | |
| 1572 | interface YYY { |
| 1573 | [Unforgeable] readonly attribute unsigned long length; |
| 1574 | [Unforgeable] DOMString getString(DOMString key); |
| 1575 | }; |
| 1576 | }}} |