1433 | | == [V8GenerateIsReachable](i), V8CustomIsReachable(i) == #V8GenerateIsReachable |
1434 | | |
1435 | | Summary: This generates code that allows you to set up implicit references between wrappers which can be used to keep wrappers alive during GC. |
1436 | | |
1437 | | Usage: The V8GenerateIsReachable can be specified on the interface. This attribute is ignored if CustomIsReachable is present. |
1438 | | |
1439 | | {{{ |
1440 | | interface [ |
1441 | | V8GenerateIsReachable=ImplBaseRoot |
1442 | | ] XXX { |
1443 | | }; |
1444 | | }}} |
1445 | | |
1446 | | 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. |
1447 | | |
1448 | | The currently valid values are: |
1449 | | |
1450 | | |ImplElementRoot|ImplOwnerRoot|ImplOwnerNodeRoot|ImplBaseRoot |
1451 | | |
1452 | | - ImplOwnerRoot |
1453 | | - ImplOwnerNodeRoot |
1454 | | - ImplElementRoot |
1455 | | - ImplBaseRoot |
1456 | | |
1457 | | 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. |
1458 | | |
1480 | | == `[GenerateIsReachable]`(i) == #GenerateIsReachable |
1481 | | |
1482 | | Summary: This is the shared version of `[JSGenerateIsReachable]` and `V8GenerateIsReachable`. The accepted values are the intersection of those two. |
1483 | | |
1484 | | - ImplElementRoot |
1485 | | - ImplBaseRoot |
1486 | | |
1487 | | == `[JSCustomHeader]`(i) == #JSCustomHeader |
1488 | | |
1489 | | Summary: `[JSCustomHeader]` allows you to write a custom header for a given interface. |
1490 | | |
1491 | | Usage: `[JSCustomHeader]` can be specified on interfaces: |
1492 | | {{{ |
1493 | | interface [ |
1494 | | JSCustomHeader |
1495 | | ] XXX { |
1496 | | }; |
1497 | | }}} |
1498 | | |
1499 | | By default, JSXXX.h and JSXXX.cpp are generated automatically. |
1500 | | By specifying `[Custom*]`, you can write custom bindings in WebCore/bindings/js/JSXXXCustom.cpp. |
1501 | | In addition, by specifying `[JSCustomHeader]`, you can write custom header in WebCore/bindings/js/JSXXXCustom.h, which will be included by JSXXX.h. |