| # `vm:testing.unsafe.trace-entrypoints-fn` pragma | |
| This pragma is used for testing purposes in the test suite. | |
| Example: | |
| ```dart | |
| void hook(String functionName, int entryPointId) { | |
| // ... | |
| } | |
| class C<T> { | |
| @pragma('vm:testing.unsafe.trace-entrypoints-fn', hook) | |
| void foo(T x) { | |
| // ... | |
| } | |
| } | |
| ``` | |
| When `foo` is invoked, `hook` will be called in `foo`'s prologue if `foo` was | |
| compiled with multiple entry points. `hook` will be passed the name of the | |
| function it was called for and the ID of the entry point used for the | |
| invocation: | |
| - 0: Normal entry. | |
| - 1: Unchecked entry: prologue was short so separate prologues for normal and | |
| unchecked entry were compiled. | |
| - 2: Unchecked shared entry: prologue was long, so normal and unchecked entry | |
| set a temporary and type-checks are predicated on the temporary. |