| OLD | NEW |
| 1 # Dart VM Service Protocol | 1 # Dart VM Service Protocol |
| 2 | 2 |
| 3 NOTE: The service api is still changing rapidly. If you use the | 3 NOTE: The service api is still changing rapidly. If you use the |
| 4 service api, expect to encounter non-compatible changes. | 4 service api, expect to encounter non-compatible changes. |
| 5 | 5 |
| 6 Description | 6 Description |
| 7 How to start | 7 How to start |
| 8 JSON | 8 JSON |
| 9 Websocket | 9 Websocket |
| 10 | 10 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 when it differs from the <code>name</code> property; when | 92 when it differs from the <code>name</code> property; when |
| 93 <code>vmName</code> is not present, the client may assume the | 93 <code>vmName</code> is not present, the client may assume the |
| 94 <code>name</code> and <code>vmName</code> are the same. | 94 <code>name</code> and <code>vmName</code> are the same. |
| 95 | 95 |
| 96 ## Events | 96 ## Events |
| 97 | 97 |
| 98 TODO | 98 TODO |
| 99 | 99 |
| 100 ## Catalog of Types | 100 ## Catalog of Types |
| 101 | 101 |
| 102 ### <a name="atAbstractType"></a>@AbstractType | |
| 103 | |
| 104 ### <a name="AbstractType"></a>AbstractType | 102 ### <a name="AbstractType"></a>AbstractType |
| 105 | 103 |
| 106 ### <a name="Breakpoint"></a>Breakpoint | 104 ### <a name="Breakpoint"></a>Breakpoint |
| 107 | 105 |
| 108 TODO: Get rid of Location or else use it more generally. | 106 TODO: Get rid of Location or else use it more generally. |
| 109 | 107 |
| 108 Object properties: |
| 109 |
| 110 | keys | values | comments | 110 | keys | values | comments |
| 111 | --- | --- | --- | 111 | --- | --- | --- |
| 112 | type | "Breakpoint" | | 112 | type | "Breakpoint" | |
| 113 | id | String | | 113 | id | String | |
| 114 | breakpointNumber | int | | 114 | breakpointNumber | int | |
| 115 | enabled | bool | | 115 | enabled | bool | |
| 116 | resolved | bool | | 116 | resolved | bool | |
| 117 | location | [Location](#Location) | | 117 | location | [Location](#Location) | |
| 118 | 118 |
| 119 ### <a name="atClass"></a>@Class | 119 ### <a name="Class"></a>Class |
| 120 |
| 121 Reference properties: |
| 122 |
| 120 | keys | values | comments | 123 | keys | values | comments |
| 121 | --- | --- | --- | 124 | --- | --- | --- |
| 122 | type | "@Class" | | 125 | type | "@Class", "Class" | |
| 123 | id | String | | 126 | id | String | |
| 124 | name | String | | 127 | name | String | |
| 125 | vmName? | String | | 128 | vmName? | String | |
| 126 | 129 |
| 127 ### <a name="Class"></a>Class | 130 Object properties: |
| 131 |
| 128 | keys | values | comments | 132 | keys | values | comments |
| 129 | --- | --- | --- | 133 | --- | --- | --- |
| 130 | type | "@Class" | | |
| 131 | id | String | | |
| 132 | name | String | | |
| 133 | vmName? | String | | |
| 134 | error? | [Error](#Error) | Error encountered during class finalization | 134 | error? | [Error](#Error) | Error encountered during class finalization |
| 135 | implemented | bool | | 135 | implemented | bool | |
| 136 | abstract | bool | | 136 | abstract | bool | |
| 137 | patch | bool | | 137 | patch | bool | |
| 138 | finalized | bool | | 138 | finalized | bool | |
| 139 | const | bool | | 139 | const | bool | |
| 140 | super? | [@Class](#atClass) | Super class | 140 | super? | [@Class](#Class) | Super class |
| 141 | library | [@Library](#atLibrary) | Owning library | 141 | library | [@Library](#Library) | Owning library |
| 142 | script? | [@Script](#atScript) | Script containing class source | 142 | script? | [@Script](#Script) | Script containing class source |
| 143 | tokenPos? | int | starting token position of class source in script | 143 | tokenPos? | int | starting token position of class source in script |
| 144 | endTokenPos? | int | end token position of class source in script | 144 | endTokenPos? | int | end token position of class source in script |
| 145 | interfaces | List of [@Class](#atClass) | interfaces this class has implemente
d | 145 | interfaces | List of [@Class](#Class) | interfaces this class has implemented |
| 146 | fields | List of [@Field](#atField) | | 146 | fields | List of [@Field](#Field) | |
| 147 | functions | List of [@Function](#atFunction) | | 147 | functions | List of [@Function](#Function) | |
| 148 | subclasses | List of [@Class](#atClass) | classes which extend this class. | 148 | subclasses | List of [@Class](#Class) | classes which extend this class. |
| 149 | canonicalTypes | [@TypeList] | kill? | 149 | canonicalTypes | [@TypeList] | kill? |
| 150 | allocationStats | ClassHeapStats | | 150 | allocationStats | ClassHeapStats | |
| 151 | 151 |
| 152 ### <a name="ClassHeapStats"></a>ClassHeapStats | 152 ### <a name="ClassHeapStats"></a>ClassHeapStats |
| 153 |
| 154 Object properties: |
| 155 |
| 153 | keys | values | comments | 156 | keys | values | comments |
| 154 | --- | --- | --- | 157 | --- | --- | --- |
| 155 | type | "ClassHeapStats" | | 158 | type | "ClassHeapStats" | |
| 156 | id | String | | 159 | id | String | |
| 157 | class | [@Class](#atClass) | | 160 | class | [@Class](#Class) | |
| 158 | new | List of int | Allocation statistics for new space. See note below on all
ocation statistics list format. | 161 | new | List of int | Allocation statistics for new space. See note below on all
ocation statistics list format. |
| 159 | old | List of int | Allocation statistics for old space. See note below on all
ocation statistics list format. | 162 | old | List of int | Allocation statistics for old space. See note below on all
ocation statistics list format. |
| 160 | promotedInstances | int | number of instances promoted at last new-space GC. | 163 | promotedInstances | int | number of instances promoted at last new-space GC. |
| 161 | promotedBytes | int | number of bytes promoted at last new-space GC. | 164 | promotedBytes | int | number of bytes promoted at last new-space GC. |
| 162 | 165 |
| 163 *Allocation statistics list format* | 166 *Allocation statistics list format* |
| 167 |
| 164 | index | value | description | 168 | index | value | description |
| 165 | --- | --- | --- | | 169 | --- | --- | --- | |
| 166 | 0 | int | Instances allocated before last GC | | 170 | 0 | int | Instances allocated before last GC | |
| 167 | 1 | int | Bytes allocated before last GC | | 171 | 1 | int | Bytes allocated before last GC | |
| 168 | 2 | int | Instances alive after last GC | | 172 | 2 | int | Instances alive after last GC | |
| 169 | 3 | int | Bytes alive after last GC | | 173 | 3 | int | Bytes alive after last GC | |
| 170 | 4 | int | Instances allocated since last GC | | 174 | 4 | int | Instances allocated since last GC | |
| 171 | 5 | int | Bytes allocated since last GC | | 175 | 5 | int | Bytes allocated since last GC | |
| 172 | 6 | int | Instances allocated since last accumulator reset | | 176 | 6 | int | Instances allocated since last accumulator reset | |
| 173 | 7 | int | Bytes allocated since last accumulator reset | | 177 | 7 | int | Bytes allocated since last accumulator reset | |
| 174 | 178 |
| 175 ### <a name="atCode"></a>@Code | 179 ### <a name="Code"></a>Code |
| 180 |
| 181 Reference properties: |
| 182 |
| 176 | keys | values | comments | 183 | keys | values | comments |
| 177 | --- | --- | --- | 184 | --- | --- | --- |
| 178 | type | "@Code" | | 185 | type | "@Code", "Code"| |
| 179 | id | String | | 186 | id | String | |
| 180 | name | String | | 187 | name | String | |
| 181 | vmName? | String | | 188 | vmName? | String | |
| 182 | start | String | starting address of code | 189 | start | String | starting address of code |
| 183 | end | String | ending address of code | 190 | end | String | ending address of code |
| 184 | isOptimized | bool | | 191 | isOptimized | bool | |
| 185 | isAlive | bool | | 192 | isAlive | bool | |
| 186 | kind | String | 193 | kind | String |
| 187 | function | [@Function](#atFunction) | | 194 | function | [@Function](#Function) | |
| 188 | 195 |
| 189 ### <a name="Code"></a>Code | 196 Object properties: |
| 197 |
| 190 | keys | values | comments | 198 | keys | values | comments |
| 191 | --- | --- | --- | 199 | --- | --- | --- |
| 192 | type | "@Code" | | |
| 193 | id | String | | |
| 194 | name | String | | |
| 195 | vmName? | String | | |
| 196 | start | String | starting address of code | 200 | start | String | starting address of code |
| 197 | end | String | ending address of code | 201 | end | String | ending address of code |
| 198 | isOptimized | bool | | 202 | isOptimized | bool | |
| 199 | isAlive | bool | | 203 | isAlive | bool | |
| 200 | kind | String | 204 | kind | String |
| 201 | function | [@Function](#atFunction) | | 205 | function | [@Function](#Function) | |
| 202 | object_pool | List of [@Object](Object) | | 206 | object_pool | List of [@Object](#Object) | |
| 203 | disassembly | List of String | See note below on disassembly list format | 207 | disassembly | List of String | See note below on disassembly list format |
| 204 | 208 |
| 205 *Disassembly list format* | 209 *Disassembly list format* |
| 210 |
| 206 | index | value | description | 211 | index | value | description |
| 207 | --- | --- | --- | | 212 | --- | --- | --- | |
| 208 | 0 | String | Address of instruction | 213 | 0 | String | Address of instruction |
| 209 | 1 | String | Hex encoding of instruction | 214 | 1 | String | Hex encoding of instruction |
| 210 | 2 | String | Human encoding of instruction | 215 | 2 | String | Human encoding of instruction |
| 211 | 0 + (3 * K) | String | Address of Kth instruction | 216 | 0 + (3 * K) | String | Address of Kth instruction |
| 212 | 1 + (3 * K) | String | Hex encoding of instruction of Kth instruction | 217 | 1 + (3 * K) | String | Hex encoding of instruction of Kth instruction |
| 213 | 2 + (3 * K) | String | Human encoding of instruction of Kth instruction | 218 | 2 + (3 * K) | String | Human encoding of instruction of Kth instruction |
| 214 | 219 |
| 215 ### <a name="DebuggerEvent"></a>DebuggerEvent | 220 ### <a name="DebuggerEvent"></a>DebuggerEvent |
| 216 | 221 |
| 222 Object properties: |
| 223 |
| 217 | keys | values | comments | 224 | keys | values | comments |
| 218 | --- | --- | --- | 225 | --- | --- | --- |
| 219 | type | "DebuggerEvent" | | 226 | type | "DebuggerEvent" | |
| 220 | id | String | TODO: Remove | | 227 | id | String | TODO: Remove | |
| 221 | eventType | String | "BreakpointReached", "BreakpointResolved", "ExceptionThro
wn", "IsolateCreated", "IsolateShutdown", or "IsolateInterrupted" | | 228 | eventType | String | "BreakpointReached", "BreakpointResolved", "ExceptionThro
wn", "IsolateCreated", "IsolateShutdown", "IsolateInterrupted" | |
| 222 | isolate | [@Isolate](#atIsolate) | | 229 | isolate | [@Isolate](#Isolate) | |
| 223 | breakpoint? | [Breakpoint](#atBreakpoint) | for eventTypes "BreakpointResolved
" and "BreakpointReached<br><br>TODO: Maybe make this @Breakpoint? | 230 | breakpoint? | [Breakpoint](#Breakpoint) | for eventTypes "BreakpointResolved"
and "BreakpointReached<br><br>TODO: Maybe make this @Breakpoint? |
| 224 | exception? | [@Instance](#atInstance) | for eventType "ExceptionThrown" | 231 | exception? | [@Instance](#Instance) | for eventType "ExceptionThrown" |
| 225 | 232 |
| 226 ### <a name="Error"></a>Error | 233 ### <a name="Error"></a>Error |
| 227 | 234 |
| 228 TODO: Drop id from Error. | 235 TODO: Drop id from Error.<br> |
| 236 |
| 237 Object properties: |
| 229 | 238 |
| 230 | keys | values | comments | 239 | keys | values | comments |
| 231 | --- | --- | --- | 240 | --- | --- | --- |
| 232 | type | "Error" | | 241 | type | "Error" | |
| 233 | id | String | always empty | 242 | id | String | always empty |
| 234 | kind | String | | 243 | kind | String | |
| 235 | message | String | | 244 | message | String | |
| 236 | 245 |
| 237 ### <a name="atField"></a>@Field | 246 ### <a name="Field"></a>Field |
| 247 |
| 248 Reference properties: |
| 249 |
| 238 | keys | values | comments | 250 | keys | values | comments |
| 239 | --- | --- | --- | 251 | --- | --- | --- |
| 240 | type | "@Field" | | 252 | type | "@Field", "Field" | |
| 241 | id | String | | 253 | id | String | |
| 242 | name | String | | 254 | name | String | |
| 243 | vmName? | String | | 255 | vmName? | String | |
| 244 | value? | Instance | value associated with static field <-- do we want to inclu
de this in a field reference? | 256 | value? | Instance | value associated with static field <-- do we want to inclu
de this in a field reference? |
| 245 | owner | [@Library](#atLibrary),[@Class](#atClass) | Owning library or class <-
- handling of owner is inconsistent with Function | 257 | owner | [@Library](#Library),[@Class](#Class) | Owning library or class <-- ha
ndling of owner is inconsistent with Function |
| 246 | declared_type | [@AbstractType](#atAbstractType) | | 258 | declared_type | [@AbstractType](#AbstractType) | |
| 247 | static | bool | | 259 | static | bool | |
| 248 | final | bool | | 260 | final | bool | |
| 249 | const | bool | | 261 | const | bool | |
| 250 | 262 |
| 251 ### <a name="Field"></a>Field | 263 Object properties: |
| 264 |
| 252 | keys | values | comments | 265 | keys | values | comments |
| 253 | --- | --- | --- | 266 | --- | --- | --- |
| 254 | type | "Field" | | |
| 255 | id | String | | |
| 256 | name | String | | |
| 257 | vmName? | String | | |
| 258 | value? | Instance | value associated with static field | |
| 259 | owner | [@Library](#atLibrary) | Owning library <-- handling of owner is incon
sistent with Function | |
| 260 | owner | [@Class](#atClass) | Owning class <-- handling of owner is inconsisten
t with Function | |
| 261 | declared_type | [@AbstractType](#atAbstractType) | | |
| 262 | static | bool | | |
| 263 | final | bool | | |
| 264 | const | bool | | |
| 265 | guard_nullable | bool | can this field hold a null? | 267 | guard_nullable | bool | can this field hold a null? |
| 266 | guard_class | String OR [@Class](#atClass) | "unknown", "dynamic", or a class | 268 | guard_class | String OR [@Class](#Class) | "unknown", "dynamic", or a class |
| 267 | guard_length | String OR int | "unknown", "variable", or length of array | 269 | guard_length | String OR int | "unknown", "variable", or length of array |
| 268 | script? | [@Script](#atScript) | Script containing field source | 270 | script? | [@Script](#Script) | Script containing field source |
| 269 | tokenPos? | int | starting token position of field source in script | 271 | tokenPos? | int | starting token position of field source in script |
| 270 | 272 |
| 271 ### <a name="Frame"></a>Frame | 273 ### <a name="Frame"></a>Frame |
| 272 | 274 |
| 273 TODO: Add type and id?<br> | 275 TODO: Add type and id?<br> |
| 274 | 276 |
| 277 Object properties: |
| 278 |
| 275 | keys | values | comments | 279 | keys | values | comments |
| 276 | --- | --- | --- | 280 | --- | --- | --- |
| 277 | script | [@Script](#atScript) | | 281 | script | [@Script](#Script) | |
| 278 | tokenPos | int | | 282 | tokenPos | int | |
| 279 | function | [@Function](#atFunction) | | 283 | function | [@Function](#Function) | |
| 280 | code | [@Code](#atCode) | | 284 | code | [@Code](#Code) | |
| 281 | vars | List of [FrameVar](#FrameVar) | | 285 | vars | List of [FrameVar](#FrameVar) | |
| 282 | 286 |
| 283 ### <a name="FrameVar"></a>FrameVar | 287 ### <a name="FrameVar"></a>FrameVar |
| 284 | 288 |
| 289 Object properties: |
| 290 |
| 285 | keys | values | comments | 291 | keys | values | comments |
| 286 | --- | --- | --- | 292 | --- | --- | --- |
| 287 | name | String | | 293 | name | String | |
| 288 | value | [@Instance](#atInstance) | | 294 | value | [@Instance](#Instance) | |
| 289 | 295 |
| 290 ### <a name="atFunction"></a>@Function | 296 ### <a name="Function"></a>Function |
| 297 |
| 298 Reference properties: |
| 299 |
| 291 | keys | values | comments | 300 | keys | values | comments |
| 292 | --- | --- | --- | 301 | --- | --- | --- |
| 293 | type | "@Function" | | 302 | type | "@Function", "Function" | |
| 294 | id | String | | 303 | id | String | |
| 295 | name | String | | 304 | name | String | |
| 296 | vmName? | String | | 305 | vmName? | String | |
| 297 | owningLibrary? | [@Library](#atLibrary) | Set for non-top level functions | 306 | owningLibrary? | [@Library](#Library) | Set for non-top level functions |
| 298 | owningClass? | [@Class](#atClass) | Set for non-top level functions | 307 | owningClass? | [@Class](#Class) | Set for non-top level functions |
| 299 | parent? | [@Function](#atFunction) | Parent function | 308 | parent? | [@Function](#Function) | Parent function |
| 300 | kind | String | | 309 | kind | String | |
| 301 | 310 |
| 302 ### <a name="Function"></a>Function | 311 Object properties: |
| 312 |
| 303 | keys | values | comments | 313 | keys | values | comments |
| 304 | --- | --- | --- | 314 | --- | --- | --- |
| 305 | type | "@Function" | | 315 | static | bool | TODO: not consistent with Field |
| 306 | id | String | | |
| 307 | name | String | | |
| 308 | vmName? | String | | |
| 309 | owningLibrary | [@Library](#atLibrary) | Set for non-top level functions | |
| 310 | owningClass | [@Class](#atClass) | Set for non-top level functions | |
| 311 | parent? | [@Function](#atFunction) | Parent function | |
| 312 | kind | String | | |
| 313 | static | bool | | |
| 314 | const | bool | | 316 | const | bool | |
| 315 | optimizable | bool | | 317 | optimizable | bool | |
| 316 | inlinable | bool | | 318 | inlinable | bool | |
| 317 | usage_counter | int | | 319 | usage_counter | int | |
| 318 | optimized_call_site_count | int | | 320 | optimized_call_site_count | int | |
| 319 | deoptimizations | int | | 321 | deoptimizations | int | |
| 320 | script? | [@Script](#atScript) | Script containing function source | 322 | script? | [@Script](#Script) | Script containing function source |
| 321 | tokenPos? | int | starting token position of function source in script | 323 | tokenPos? | int | starting token position of function source in script |
| 322 | endTokenPos? | int | end token position of function source in script | 324 | endTokenPos? | int | end token position of function source in script |
| 323 | unoptimized_code | [@Code](#atCode) | | 325 | unoptimized_code | [@Code](#Code) | |
| 324 | code | [@Code](#atCode) | Current code | 326 | code | [@Code](#Code) | Current code |
| 325 | 327 |
| 326 ### <a name="atIsolate"></a>@Isolate | 328 ### <a name="Isolate"></a>Isolate |
| 329 |
| 330 Reference properties: |
| 327 | 331 |
| 328 | keys | values | comments | 332 | keys | values | comments |
| 329 | --- | --- | --- | 333 | --- | --- | --- |
| 330 | type | "@Isolate" | | 334 | type | "@Isolate", "Isolate" | |
| 331 | id | String | | 335 | id | String | |
| 332 | mainPort | String | kill? | | 336 | mainPort | String | kill? | |
| 333 | name | String | | 337 | name | String | |
| 334 | 338 |
| 335 ### Isolate | 339 Object properties: |
| 336 | 340 |
| 337 | keys | values | comments | 341 | keys | values | comments |
| 338 | --- | --- | --- | 342 | --- | --- | --- |
| 339 | type | "Isolate" | | 343 | entry? | [@Function](#Function) | |
| 340 | id | String | | |
| 341 | mainPort | String | kill? | | |
| 342 | name | String | | |
| 343 | entry? | [@Function](#atFunction) | | |
| 344 | heaps | ??? | | 344 | heaps | ??? | |
| 345 | topFrame? | [Frame](#Frame) | | 345 | topFrame? | [Frame](#Frame) | |
| 346 | livePorts | int | | 346 | livePorts | int | |
| 347 | pauseOnExit | bool | | 347 | pauseOnExit | bool | |
| 348 | pauseEvent? | [DebuggerEvent](#DebuggerEvent) | | 348 | pauseEvent? | [DebuggerEvent](#DebuggerEvent) | |
| 349 | rootLib | [@Library](#atLibrary) | | 349 | rootLib | [@Library](#Library) | |
| 350 | timers | ??? | | 350 | timers | ??? | |
| 351 | tagCounters | ??? | | 351 | tagCounters | ??? | |
| 352 | error? | [Error](#Error) | | 352 | error? | [Error](#Error) | |
| 353 | canonicalTypeArguments | | kill? | | 353 | canonicalTypeArguments | | kill? | |
| 354 | libs | List of [@Library](#atLibrary) | | 354 | libs | List of [@Library](#Library) | |
| 355 | features | List of String | | 355 | features | List of String | |
| 356 | 356 |
| 357 ### <a name="atLibrary"></a>@Library | 357 ### <a name="Library"></a>Library |
| 358 |
| 359 Reference properties: |
| 358 | 360 |
| 359 | keys | values | comments | 361 | keys | values | comments |
| 360 | --- | --- | --- | 362 | --- | --- | --- |
| 361 | type | "@Library" | | 363 | type | "@Library", "Library" | |
| 362 | id | String | | 364 | id | String | |
| 363 | name | String | | 365 | name | String | |
| 364 | vmName? | String | Internal vm name. Provided only when different from 'name'
. | 366 | vmName? | String | Internal vm name. Provided only when different from 'name'
. |
| 365 | url | String | 367 | url | String |
| 366 | 368 |
| 367 ### <a name="Library"></a>Library | 369 Object properties: |
| 368 | 370 |
| 369 | keys | values | comments | 371 | keys | values | comments |
| 370 | --- | --- | --- | 372 | --- | --- | --- |
| 371 | type | "Library" | | 373 | classes | List of [@Class](#Class) | |
| 372 | id | String | | 374 | imports | List of [@Library](#Library) | |
| 373 | name | String | | |
| 374 | vmName? | String | Internal vm name. Provided only when different from 'name'
. | |
| 375 | classes | List of [@Class](#atClass) | | |
| 376 | imports | List of [@Library](#atLibrary) | | |
| 377 | variables | List of ... | | 375 | variables | List of ... | |
| 378 | functions | List of [@Function](#atFunction) | | 376 | functions | List of [@Function](#Function) | |
| 379 | scripts | List of [@Script](#atScript) | | 377 | scripts | List of [@Script](#Script) | |
| 380 | 378 |
| 381 ### <a name="Location"></a>Location | 379 ### <a name="Location"></a>Location |
| 382 | 380 |
| 381 Object properties: |
| 382 |
| 383 | keys | values | comments | 383 | keys | values | comments |
| 384 | --- | --- | --- | 384 | --- | --- | --- |
| 385 | type | "Location" | | 385 | type | "Location" | |
| 386 | script | [@Script](#atScript) | | 386 | script | [@Script](#Script) | |
| 387 | tokenPos | int | | 387 | tokenPos | int | |
| 388 | 388 |
| 389 ### <a name="@Null"></a>@Null | 389 ### <a name="Null"></a>Null |
| 390 | 390 |
| 391 TODO: Split Null from the other Sentinel types. | 391 Reference properties: |
| 392 | 392 |
| 393 | keys | values | comments | 393 | keys | values | comments |
| 394 | --- | --- | --- | 394 | --- | --- | --- |
| 395 | type | "@Null" | | 395 | type | "@Null", "Null" | |
| 396 | id | String | | | 396 | id | String | | |
| 397 | valueAsString | String | | 397 | valueAsString | String | |
| 398 | 398 |
| 399 Object properties:<br> |
| 400 |
| 401 TODO. |
| 402 |
| 399 ### <a name="PcDescriptor"></a>PcDescriptor | 403 ### <a name="PcDescriptor"></a>PcDescriptor |
| 400 | 404 |
| 401 ### <a name="atScript"></a>@Script | 405 ### <a name="Script"></a>Script |
| 406 |
| 407 Reference properties: |
| 408 |
| 402 | keys | values | comments | example | | 409 | keys | values | comments | example | |
| 403 | --- | --- | --- | 410 | --- | --- | --- |
| 404 | type | "@Script" | | 411 | type | "@Script", "Script" | |
| 405 | id | String | 412 | id | String |
| 406 | name | String | 413 | name | String |
| 407 | vmName? | String | Internal vm name. Provided only when different from 'name'
. | 414 | vmName? | String | Internal vm name. Provided only when different from 'name'
. |
| 408 | kind | String | 415 | kind | String |
| 409 | 416 |
| 410 ### <a name="Script"></a>Script | 417 Object properties: |
| 418 |
| 411 | keys | values | comments | 419 | keys | values | comments |
| 412 | --- | --- | --- | 420 | --- | --- | --- |
| 413 | type | "@Script" | | 421 | owningLibrary | [@Library](#Library) |
| 414 | id | String | |
| 415 | name | String | |
| 416 | vmName? | String | Internal vm name. Provided only when different from 'name'
. | |
| 417 | kind | String | |
| 418 | owningLibrary | [@Library](#atLibrary) | | |
| 419 | source | String | 422 | source | String |
| 420 | tokenPosTable | List of list of int. See note below about token line format. | 423 | tokenPosTable | List of list of int. See note below about token line format. |
| 421 | 424 |
| 422 *Token line format* | 425 *Token line format* |
| 426 |
| 423 | index | value | comments | 427 | index | value | comments |
| 424 | --- | --- | --- | 428 | --- | --- | --- |
| 425 | 0 | int | line number | 429 | 0 | int | line number |
| 426 | 1 | int | first token position | 430 | 1 | int | first token position |
| 427 | 2 | int | first column number | 431 | 2 | int | first column number |
| 428 | ... | ... | ... | 432 | ... | ... | ... |
| 429 | 1 + (2 * k) | int | kth token position | 433 | 1 + (2 * k) | int | kth token position |
| 430 | 2 + (2 * k) | int | kth column number | 434 | 2 + (2 * k) | int | kth column number |
| 431 | 435 |
| 432 ### <a name="Sentinel"></a>Sentinel | 436 ### <a name="Sentinel"></a>Sentinel |
| 433 | 437 |
| 434 TODO: Enumerate known Sentinels | 438 TODO: Enumerate known Sentinels<br> |
| 435 TODO: Should this even have an id? Maybe a *kind* instead. | 439 TODO: Should this even have an id? Maybe a *kind* instead.<br><br> |
| 440 |
| 441 Object properties: |
| 436 | 442 |
| 437 | keys | values | comments | 443 | keys | values | comments |
| 438 | --- | --- | --- | 444 | --- | --- | --- |
| 439 | type | "Sentinel" | | 445 | type | "Sentinel" | |
| 440 | id | String | | | 446 | id | String | | |
| 441 | valueAsString | String | | 447 | valueAsString | String | |
| 442 | 448 |
| 443 ### <a name="VM"></a>VM | 449 ### <a name="VM"></a>VM |
| 444 | 450 |
| 451 Object properties: |
| 452 |
| 445 | keys | values | comments | 453 | keys | values | comments |
| 446 | --- | --- | --- | 454 | --- | --- | --- |
| 447 | type | "VM" | | 455 | type | "VM" | |
| 448 | id | String | | 456 | id | String | |
| 449 | targetCPU | String | | 457 | targetCPU | String | |
| 450 | hostCPU | String | | 458 | hostCPU | String | |
| 451 | date | String | kill? | | 459 | date | String | kill? | |
| 452 | version | String | | 460 | version | String | |
| 453 | pid | int | | 461 | pid | int | |
| 454 | assertsEnabled | bool | TODO: move to features? | | 462 | assertsEnabled | bool | TODO: move to features? | |
| 455 | typeChecksEnabled | bool | TODO: move to features? | | 463 | typeChecksEnabled | bool | TODO: move to features? | |
| 456 | uptime | double | seconds since vm started | | 464 | uptime | double | seconds since vm started | |
| 457 | "isolates" | List of [@Isolate](#atIsolate) | | 465 | "isolates" | List of [@Isolate](#Isolate) | |
| 458 | 466 |
| OLD | NEW |