1620 | | [JSGenerateToJSObject], [JSGenerateIsReachable] or [JSGenerateToNativeObject], respectively. |
| 1622 | [JSGenerateToJSObject] or [JSGenerateToNativeObject], respectively. |
| 1623 | |
| 1624 | == [JSGenerateIsReachable](i) == #JSGenerateIsReachable |
| 1625 | |
| 1626 | Summary: This generates code that determines if a wrapper is reachable. |
| 1627 | |
| 1628 | Usage: The JSGenerateIsReachable can be specified on the interface. This attribute is ignored if CustomIsReachable is present. |
| 1629 | |
| 1630 | {{{ |
| 1631 | interface [ |
| 1632 | JSGenerateIsReachable=ImplBaseRoot |
| 1633 | ] XXX { |
| 1634 | }; |
| 1635 | }}} |
| 1636 | |
| 1637 | The code generates a function called XXX::isReachableFromOpaqueRoots which returns a boolean if the wrapper is reachable. |
| 1638 | |
| 1639 | The currently valid values are: |
| 1640 | |
| 1641 | - (no value) |
| 1642 | - Impl |
| 1643 | - ImplContext |
| 1644 | - ImplFrame |
| 1645 | - ImplDocument |
| 1646 | - ImplElementRoot |
| 1647 | - ImplBaseRoot |
| 1648 | |
| 1649 | The value of these represents the functions to call to get the object that determines whether the object is reachable or not. See CodeGeneratorJS.pm for more details. The values that end with Root calls WebCore::root to get the root. If the value is left out then WebCore::root is called on impl(). |
| 1650 | |
| 1651 | == [V8GenerateIsReachable](i) == #V8GenerateIsReachable |
| 1652 | |
| 1653 | Summary: This generates code that determines if a wrapper is reachable. |
| 1654 | |
| 1655 | Usage: The V8GenerateIsReachable can be specified on the interface. This attribute is ignored if CustomIsReachable is present. |
| 1656 | |
| 1657 | {{{ |
| 1658 | interface [ |
| 1659 | V8GenerateIsReachable=ImplBaseRoot |
| 1660 | ] XXX { |
| 1661 | }; |
| 1662 | }}} |
| 1663 | |
| 1664 | The code generates a function called XXX::visitDOMWrapper which is called by V8GCController before GC. The function adds implicit references to the wrapper which keeps it alive. |
| 1665 | |
| 1666 | The currently valid values are: |
| 1667 | |
| 1668 | |ImplElementRoot|ImplOwnerRoot|ImplOwnerNodeRoot|ImplBaseRoot |
| 1669 | |
| 1670 | - ImplOwnerRoot |
| 1671 | - ImplOwnerNodeRoot |
| 1672 | - ImplElementRoot |
| 1673 | - ImplBaseRoot |
| 1674 | |
| 1675 | The value of these represents the functions to call to get the object that determines whether the object is reachable or not. See CodeGeneratorV8.pm for more details. |
| 1676 | |
| 1677 | == [GenerateIsReachable](i) == #GenerateIsReachable |
| 1678 | |
| 1679 | Summary: This is the shared version of [JSGenerateIsReachable] and V8GenerateIsReachable. The accepted values are the intersection of those two. |
| 1680 | |
| 1681 | - ImplElementRoot |
| 1682 | - ImplBaseRoot |