Changeset 195305 in webkit
- Timestamp:
- Jan 19, 2016, 12:20:53 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 9 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/inspector/console/console-api-expected.txt (modified) (49 diffs)
-
LayoutTests/inspector/console/console-table-expected.txt (modified) (46 diffs)
-
LayoutTests/inspector/model/remote-object-expected.txt (modified) (414 diffs)
-
LayoutTests/inspector/unit-tests/linked-list-expected.txt (added)
-
LayoutTests/inspector/unit-tests/linked-list.html (added)
-
LayoutTests/inspector/unit-tests/list-multimap-expected.txt (added)
-
LayoutTests/inspector/unit-tests/list-multimap.html (added)
-
Source/WebInspectorUI/ChangeLog (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/Base/LinkedList.js (added)
-
Source/WebInspectorUI/UserInterface/Base/ListMultimap.js (added)
-
Source/WebInspectorUI/UserInterface/Base/Object.js (modified) (6 diffs)
-
Source/WebInspectorUI/UserInterface/Main.html (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/Test.html (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/TestStub.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r195301 r195305 1 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com> 2 3 Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1) 4 https://bugs.webkit.org/show_bug.cgi?id=152422 5 <rdar://problem/24038047> 6 7 Reviewed by Timothy Hatcher. 8 9 * inspector/console/console-api-expected.txt: 10 * inspector/console/console-table-expected.txt: 11 * inspector/model/remote-object-expected.txt: 12 Rebaseline tests, add "_listeners: null" to all WebInspector.Object instances. 13 14 * inspector/unit-tests/linked-list-expected.txt: Added. 15 * inspector/unit-tests/linked-list.html: Added. 16 * inspector/unit-tests/list-multimap-expected.txt: Added. 17 * inspector/unit-tests/list-multimap.html: Added. 18 1 19 2016-01-19 Brady Eidson <beidson@apple.com> 2 20 -
trunk/LayoutTests/inspector/console/console-api-expected.txt
r194981 r195305 20 20 STEP: console.log('console.log') 21 21 { 22 "_listeners": null, 22 23 "_source": "console-api", 23 24 "_level": "log", … … 42 43 STEP: console.warn('console.warn') 43 44 { 45 "_listeners": null, 44 46 "_source": "console-api", 45 47 "_level": "warning", … … 64 66 STEP: console.error('console.error') 65 67 { 68 "_listeners": null, 66 69 "_source": "console-api", 67 70 "_level": "error", … … 86 89 STEP: console.debug('console.debug') 87 90 { 91 "_listeners": null, 88 92 "_source": "console-api", 89 93 "_level": "debug", … … 108 112 STEP: console.info('console.info') 109 113 { 114 "_listeners": null, 110 115 "_source": "console-api", 111 116 "_level": "info", … … 130 135 STEP: console.assert(false, 'assertion message') 131 136 { 137 "_listeners": null, 132 138 "_source": "console-api", 133 139 "_level": "error", … … 152 158 STEP: console.trace() 153 159 { 160 "_listeners": null, 154 161 "_source": "console-api", 155 162 "_level": "log", … … 166 173 STEP: console.log('string message', string) 167 174 { 175 "_listeners": null, 168 176 "_source": "console-api", 169 177 "_level": "log", … … 194 202 STEP: console.log('message', object, object) 195 203 { 204 "_listeners": null, 196 205 "_source": "console-api", 197 206 "_level": "log", … … 215 224 "_hasChildren": true, 216 225 "_preview": { 226 "_listeners": null, 217 227 "_type": "object", 218 228 "_description": "Object", … … 221 231 "_properties": [ 222 232 { 233 "_listeners": null, 223 234 "_name": "a", 224 235 "_type": "number", … … 235 246 "_hasChildren": true, 236 247 "_preview": { 248 "_listeners": null, 237 249 "_type": "object", 238 250 "_description": "Object", … … 241 253 "_properties": [ 242 254 { 255 "_listeners": null, 243 256 "_name": "a", 244 257 "_type": "number", … … 256 269 STEP: console.error('message', object) 257 270 { 271 "_listeners": null, 258 272 "_source": "console-api", 259 273 "_level": "error", … … 277 291 "_hasChildren": true, 278 292 "_preview": { 293 "_listeners": null, 279 294 "_type": "object", 280 295 "_description": "Object", … … 283 298 "_properties": [ 284 299 { 300 "_listeners": null, 285 301 "_name": "a", 286 302 "_type": "number", … … 298 314 STEP: console.warn('message', object) 299 315 { 316 "_listeners": null, 300 317 "_source": "console-api", 301 318 "_level": "warning", … … 319 336 "_hasChildren": true, 320 337 "_preview": { 338 "_listeners": null, 321 339 "_type": "object", 322 340 "_description": "Object", … … 325 343 "_properties": [ 326 344 { 345 "_listeners": null, 327 346 "_name": "a", 328 347 "_type": "number", … … 340 359 STEP: console.debug('message', object) 341 360 { 361 "_listeners": null, 342 362 "_source": "console-api", 343 363 "_level": "debug", … … 361 381 "_hasChildren": true, 362 382 "_preview": { 383 "_listeners": null, 363 384 "_type": "object", 364 385 "_description": "Object", … … 367 388 "_properties": [ 368 389 { 390 "_listeners": null, 369 391 "_name": "a", 370 392 "_type": "number", … … 382 404 STEP: console.info('message', object) 383 405 { 406 "_listeners": null, 384 407 "_source": "console-api", 385 408 "_level": "info", … … 403 426 "_hasChildren": true, 404 427 "_preview": { 428 "_listeners": null, 405 429 "_type": "object", 406 430 "_description": "Object", … … 409 433 "_properties": [ 410 434 { 435 "_listeners": null, 411 436 "_name": "a", 412 437 "_type": "number", … … 424 449 STEP: console.dir(object) 425 450 { 451 "_listeners": null, 426 452 "_source": "console-api", 427 453 "_level": "log", … … 439 465 "_hasChildren": true, 440 466 "_preview": { 467 "_listeners": null, 441 468 "_type": "object", 442 469 "_description": "Object", … … 445 472 "_properties": [ 446 473 { 474 "_listeners": null, 447 475 "_name": "a", 448 476 "_type": "number", … … 460 488 STEP: console.dirxml(object) 461 489 { 490 "_listeners": null, 462 491 "_source": "console-api", 463 492 "_level": "log", … … 475 504 "_hasChildren": true, 476 505 "_preview": { 506 "_listeners": null, 477 507 "_type": "object", 478 508 "_description": "Object", … … 481 511 "_properties": [ 482 512 { 513 "_listeners": null, 483 514 "_name": "a", 484 515 "_type": "number", … … 496 527 STEP: console.group('groupName') 497 528 { 529 "_listeners": null, 498 530 "_source": "console-api", 499 531 "_level": "log", … … 518 550 STEP: console.groupEnd('groupName') 519 551 { 552 "_listeners": null, 520 553 "_source": "console-api", 521 554 "_level": "log", … … 540 573 STEP: console.groupCollapsed('collapsedGroupName') 541 574 { 575 "_listeners": null, 542 576 "_source": "console-api", 543 577 "_level": "log", … … 562 596 STEP: console.groupEnd('collapsedGroupName') 563 597 { 598 "_listeners": null, 564 599 "_source": "console-api", 565 600 "_level": "log", … … 584 619 STEP: console.count() 585 620 { 621 "_listeners": null, 586 622 "_source": "console-api", 587 623 "_level": "debug", … … 598 634 STEP: console.count() 599 635 { 636 "_listeners": null, 600 637 "_source": "console-api", 601 638 "_level": "debug", … … 612 649 STEP: console.count('') 613 650 { 651 "_listeners": null, 614 652 "_source": "console-api", 615 653 "_level": "debug", … … 626 664 STEP: console.count(' ') 627 665 { 666 "_listeners": null, 628 667 "_source": "console-api", 629 668 "_level": "debug", … … 640 679 STEP: console.count('') 641 680 { 681 "_listeners": null, 642 682 "_source": "console-api", 643 683 "_level": "debug", … … 654 694 STEP: console.count(' ') 655 695 { 696 "_listeners": null, 656 697 "_source": "console-api", 657 698 "_level": "debug", … … 668 709 STEP: console.count(string) 669 710 { 711 "_listeners": null, 670 712 "_source": "console-api", 671 713 "_level": "debug", … … 682 724 STEP: console.count(string) 683 725 { 726 "_listeners": null, 684 727 "_source": "console-api", 685 728 "_level": "debug", … … 696 739 STEP: console.count(object) 697 740 { 741 "_listeners": null, 698 742 "_source": "console-api", 699 743 "_level": "debug", … … 710 754 STEP: console.count(object) 711 755 { 756 "_listeners": null, 712 757 "_source": "console-api", 713 758 "_level": "debug", … … 724 769 STEP: console.count(otherObject) 725 770 { 771 "_listeners": null, 726 772 "_source": "console-api", 727 773 "_level": "debug", … … 738 784 STEP: console.count(otherObject) 739 785 { 786 "_listeners": null, 740 787 "_source": "console-api", 741 788 "_level": "debug", … … 752 799 STEP: console.count(number) 753 800 { 801 "_listeners": null, 754 802 "_source": "console-api", 755 803 "_level": "debug", … … 766 814 STEP: console.count(number) 767 815 { 816 "_listeners": null, 768 817 "_source": "console-api", 769 818 "_level": "debug", -
trunk/LayoutTests/inspector/console/console-table-expected.txt
r194981 r195305 8 8 STEP: console.table([]) 9 9 { 10 "_listeners": null, 10 11 "_source": "console-api", 11 12 "_level": "log", … … 25 26 "_size": 0, 26 27 "_preview": { 28 "_listeners": null, 27 29 "_type": "object", 28 30 "_subtype": "array", … … 42 44 STEP: console.table(['apple', 'orange', 'banana']) 43 45 { 46 "_listeners": null, 44 47 "_source": "console-api", 45 48 "_level": "log", … … 59 62 "_size": 3, 60 63 "_preview": { 64 "_listeners": null, 61 65 "_type": "object", 62 66 "_subtype": "array", … … 67 71 "_properties": [ 68 72 { 73 "_listeners": null, 69 74 "_name": "0", 70 75 "_type": "string", … … 72 77 }, 73 78 { 79 "_listeners": null, 74 80 "_name": "1", 75 81 "_type": "string", … … 77 83 }, 78 84 { 85 "_listeners": null, 79 86 "_name": "2", 80 87 "_type": "string", … … 92 99 STEP: console.table({firstName: 'John', lastName: 'Smith'}) 93 100 { 101 "_listeners": null, 94 102 "_source": "console-api", 95 103 "_level": "log", … … 107 115 "_hasChildren": true, 108 116 "_preview": { 117 "_listeners": null, 109 118 "_type": "object", 110 119 "_description": "Object", … … 113 122 "_properties": [ 114 123 { 124 "_listeners": null, 115 125 "_name": "firstName", 116 126 "_type": "string", … … 118 128 }, 119 129 { 130 "_listeners": null, 120 131 "_name": "lastName", 121 132 "_type": "string", … … 133 144 STEP: console.table([['John', 'Smith'], ['Jane', 'Doe'], ['Emily', 'Jones']]) 134 145 { 146 "_listeners": null, 135 147 "_source": "console-api", 136 148 "_level": "log", … … 150 162 "_size": 3, 151 163 "_preview": { 164 "_listeners": null, 152 165 "_type": "object", 153 166 "_subtype": "array", … … 158 171 "_properties": [ 159 172 { 173 "_listeners": null, 160 174 "_name": "0", 161 175 "_type": "object", 162 176 "_subtype": "array", 163 177 "_valuePreview": { 178 "_listeners": null, 164 179 "_type": "object", 165 180 "_subtype": "array", … … 170 185 "_properties": [ 171 186 { 187 "_listeners": null, 172 188 "_name": "0", 173 189 "_type": "string", … … 175 191 }, 176 192 { 193 "_listeners": null, 177 194 "_name": "1", 178 195 "_type": "string", … … 184 201 }, 185 202 { 203 "_listeners": null, 186 204 "_name": "1", 187 205 "_type": "object", 188 206 "_subtype": "array", 189 207 "_valuePreview": { 208 "_listeners": null, 190 209 "_type": "object", 191 210 "_subtype": "array", … … 196 215 "_properties": [ 197 216 { 217 "_listeners": null, 198 218 "_name": "0", 199 219 "_type": "string", … … 201 221 }, 202 222 { 223 "_listeners": null, 203 224 "_name": "1", 204 225 "_type": "string", … … 210 231 }, 211 232 { 233 "_listeners": null, 212 234 "_name": "2", 213 235 "_type": "object", 214 236 "_subtype": "array", 215 237 "_valuePreview": { 238 "_listeners": null, 216 239 "_type": "object", 217 240 "_subtype": "array", … … 222 245 "_properties": [ 223 246 { 247 "_listeners": null, 224 248 "_name": "0", 225 249 "_type": "string", … … 227 251 }, 228 252 { 253 "_listeners": null, 229 254 "_name": "1", 230 255 "_type": "string", … … 246 271 STEP: console.table([john, jane, emily]) 247 272 { 273 "_listeners": null, 248 274 "_source": "console-api", 249 275 "_level": "log", … … 263 289 "_size": 3, 264 290 "_preview": { 291 "_listeners": null, 265 292 "_type": "object", 266 293 "_subtype": "array", … … 271 298 "_properties": [ 272 299 { 300 "_listeners": null, 273 301 "_name": "0", 274 302 "_type": "object", 275 303 "_valuePreview": { 304 "_listeners": null, 276 305 "_type": "object", 277 306 "_description": "Person", … … 280 309 "_properties": [ 281 310 { 311 "_listeners": null, 282 312 "_name": "firstName", 283 313 "_type": "string", … … 285 315 }, 286 316 { 317 "_listeners": null, 287 318 "_name": "lastName", 288 319 "_type": "string", … … 294 325 }, 295 326 { 327 "_listeners": null, 296 328 "_name": "1", 297 329 "_type": "object", 298 330 "_valuePreview": { 331 "_listeners": null, 299 332 "_type": "object", 300 333 "_description": "Person", … … 303 336 "_properties": [ 304 337 { 338 "_listeners": null, 305 339 "_name": "firstName", 306 340 "_type": "string", … … 308 342 }, 309 343 { 344 "_listeners": null, 310 345 "_name": "lastName", 311 346 "_type": "string", … … 317 352 }, 318 353 { 354 "_listeners": null, 319 355 "_name": "2", 320 356 "_type": "object", 321 357 "_valuePreview": { 358 "_listeners": null, 322 359 "_type": "object", 323 360 "_description": "Person", … … 326 363 "_properties": [ 327 364 { 365 "_listeners": null, 328 366 "_name": "firstName", 329 367 "_type": "string", … … 331 369 }, 332 370 { 371 "_listeners": null, 333 372 "_name": "lastName", 334 373 "_type": "string", … … 350 389 STEP: console.table([john, jane, emily], ['firstName']) 351 390 { 391 "_listeners": null, 352 392 "_source": "console-api", 353 393 "_level": "log", … … 367 407 "_size": 3, 368 408 "_preview": { 409 "_listeners": null, 369 410 "_type": "object", 370 411 "_subtype": "array", … … 375 416 "_properties": [ 376 417 { 418 "_listeners": null, 377 419 "_name": "0", 378 420 "_type": "object", 379 421 "_valuePreview": { 422 "_listeners": null, 380 423 "_type": "object", 381 424 "_description": "Person", … … 384 427 "_properties": [ 385 428 { 429 "_listeners": null, 386 430 "_name": "firstName", 387 431 "_type": "string", … … 389 433 }, 390 434 { 435 "_listeners": null, 391 436 "_name": "lastName", 392 437 "_type": "string", … … 398 443 }, 399 444 { 445 "_listeners": null, 400 446 "_name": "1", 401 447 "_type": "object", 402 448 "_valuePreview": { 449 "_listeners": null, 403 450 "_type": "object", 404 451 "_description": "Person", … … 407 454 "_properties": [ 408 455 { 456 "_listeners": null, 409 457 "_name": "firstName", 410 458 "_type": "string", … … 412 460 }, 413 461 { 462 "_listeners": null, 414 463 "_name": "lastName", 415 464 "_type": "string", … … 421 470 }, 422 471 { 472 "_listeners": null, 423 473 "_name": "2", 424 474 "_type": "object", 425 475 "_valuePreview": { 476 "_listeners": null, 426 477 "_type": "object", 427 478 "_description": "Person", … … 430 481 "_properties": [ 431 482 { 483 "_listeners": null, 432 484 "_name": "firstName", 433 485 "_type": "string", … … 435 487 }, 436 488 { 489 "_listeners": null, 437 490 "_name": "lastName", 438 491 "_type": "string", … … 455 508 "_size": 1, 456 509 "_preview": { 510 "_listeners": null, 457 511 "_type": "object", 458 512 "_subtype": "array", … … 463 517 "_properties": [ 464 518 { 519 "_listeners": null, 465 520 "_name": "0", 466 521 "_type": "string", -
trunk/LayoutTests/inspector/model/remote-object-expected.txt
r188735 r195305 264 264 "_description": "/ /", 265 265 "_preview": { 266 "_listeners": null, 266 267 "_type": "object", 267 268 "_subtype": "regexp", … … 271 272 "_properties": [ 272 273 { 274 "_listeners": null, 273 275 "_name": "lastIndex", 274 276 "_type": "number", … … 288 290 "_description": "/(?:)/", 289 291 "_preview": { 292 "_listeners": null, 290 293 "_type": "object", 291 294 "_subtype": "regexp", … … 295 298 "_properties": [ 296 299 { 300 "_listeners": null, 297 301 "_name": "lastIndex", 298 302 "_type": "number", … … 312 316 "_description": "/^r(e)g[e]{1,}x+/", 313 317 "_preview": { 318 "_listeners": null, 314 319 "_type": "object", 315 320 "_subtype": "regexp", … … 319 324 "_properties": [ 320 325 { 326 "_listeners": null, 321 327 "_name": "lastIndex", 322 328 "_type": "number", … … 336 342 "_description": "/^r(e)g[e]{1,}x+/gi", 337 343 "_preview": { 344 "_listeners": null, 338 345 "_type": "object", 339 346 "_subtype": "regexp", … … 343 350 "_properties": [ 344 351 { 352 "_listeners": null, 345 353 "_name": "lastIndex", 346 354 "_type": "number", … … 360 368 "_description": "/(?:)/", 361 369 "_preview": { 370 "_listeners": null, 362 371 "_type": "object", 363 372 "_subtype": "regexp", … … 367 376 "_properties": [ 368 377 { 378 "_listeners": null, 369 379 "_name": "lastIndex", 370 380 "_type": "number", … … 384 394 "_description": "/test/i", 385 395 "_preview": { 396 "_listeners": null, 386 397 "_type": "object", 387 398 "_subtype": "regexp", … … 391 402 "_properties": [ 392 403 { 404 "_listeners": null, 393 405 "_name": "lastIndex", 394 406 "_type": "number", … … 409 421 "_size": 0, 410 422 "_preview": { 423 "_listeners": null, 411 424 "_type": "object", 412 425 "_subtype": "array", … … 429 442 "_size": 4, 430 443 "_preview": { 444 "_listeners": null, 431 445 "_type": "object", 432 446 "_subtype": "array", … … 437 451 "_properties": [ 438 452 { 453 "_listeners": null, 439 454 "_name": "0", 440 455 "_type": "number", … … 442 457 }, 443 458 { 459 "_listeners": null, 444 460 "_name": "1", 445 461 "_type": "number", … … 447 463 }, 448 464 { 465 "_listeners": null, 449 466 "_name": "2", 450 467 "_type": "number", … … 452 469 }, 453 470 { 471 "_listeners": null, 454 472 "_name": "3", 455 473 "_type": "number", … … 470 488 "_size": 3, 471 489 "_preview": { 490 "_listeners": null, 472 491 "_type": "object", 473 492 "_subtype": "array", … … 478 497 "_properties": [ 479 498 { 499 "_listeners": null, 480 500 "_name": "0", 481 501 "_type": "object", 482 502 "_subtype": "array", 483 503 "_valuePreview": { 504 "_listeners": null, 484 505 "_type": "object", 485 506 "_subtype": "array", … … 490 511 "_properties": [ 491 512 { 513 "_listeners": null, 492 514 "_name": "0", 493 515 "_type": "number", … … 499 521 }, 500 522 { 523 "_listeners": null, 501 524 "_name": "1", 502 525 "_type": "object", 503 526 "_subtype": "array", 504 527 "_valuePreview": { 528 "_listeners": null, 505 529 "_type": "object", 506 530 "_subtype": "array", … … 511 535 "_properties": [ 512 536 { 537 "_listeners": null, 513 538 "_name": "0", 514 539 "_type": "number", … … 520 545 }, 521 546 { 547 "_listeners": null, 522 548 "_name": "2", 523 549 "_type": "object", 524 550 "_subtype": "array", 525 551 "_valuePreview": { 552 "_listeners": null, 526 553 "_type": "object", 527 554 "_subtype": "array", … … 532 559 "_properties": [ 533 560 { 561 "_listeners": null, 534 562 "_name": "0", 535 563 "_type": "number", … … 554 582 "_size": 5, 555 583 "_preview": { 584 "_listeners": null, 556 585 "_type": "object", 557 586 "_subtype": "array", … … 562 591 "_properties": [ 563 592 { 593 "_listeners": null, 564 594 "_name": "0", 565 595 "_type": "boolean", … … 567 597 }, 568 598 { 599 "_listeners": null, 569 600 "_name": "1", 570 601 "_type": "number", … … 572 603 }, 573 604 { 605 "_listeners": null, 574 606 "_name": "2", 575 607 "_type": "number", … … 577 609 }, 578 610 { 611 "_listeners": null, 579 612 "_name": "3", 580 613 "_type": "string", … … 582 615 }, 583 616 { 617 "_listeners": null, 584 618 "_name": "4", 585 619 "_type": "object", … … 601 635 "_size": 1, 602 636 "_preview": { 637 "_listeners": null, 603 638 "_type": "object", 604 639 "_subtype": "array", … … 609 644 "_properties": [ 610 645 { 646 "_listeners": null, 611 647 "_name": "0", 612 648 "_type": "object", 613 649 "_subtype": "array", 614 650 "_valuePreview": { 651 "_listeners": null, 615 652 "_type": "object", 616 653 "_subtype": "array", … … 621 658 "_properties": [ 622 659 { 660 "_listeners": null, 623 661 "_name": "0", 624 662 "_type": "object", … … 644 682 "_size": 1, 645 683 "_preview": { 684 "_listeners": null, 646 685 "_type": "object", 647 686 "_subtype": "array", … … 652 691 "_properties": [ 653 692 { 693 "_listeners": null, 654 694 "_name": "0", 655 695 "_type": "object", 656 696 "_subtype": "array", 657 697 "_valuePreview": { 698 "_listeners": null, 658 699 "_type": "object", 659 700 "_subtype": "array", … … 664 705 "_properties": [ 665 706 { 707 "_listeners": null, 666 708 "_name": "0", 667 709 "_type": "undefined", … … 686 728 "_size": 3, 687 729 "_preview": { 730 "_listeners": null, 688 731 "_type": "object", 689 732 "_subtype": "array", … … 694 737 "_properties": [ 695 738 { 739 "_listeners": null, 696 740 "_name": "0", 697 741 "_type": "object", 698 742 "_valuePreview": { 743 "_listeners": null, 699 744 "_type": "object", 700 745 "_description": "Object", … … 703 748 "_properties": [ 704 749 { 750 "_listeners": null, 705 751 "_name": "a", 706 752 "_type": "number", … … 712 758 }, 713 759 { 760 "_listeners": null, 714 761 "_name": "1", 715 762 "_type": "object", 716 763 "_valuePreview": { 764 "_listeners": null, 717 765 "_type": "object", 718 766 "_description": "Object", … … 721 769 "_properties": [ 722 770 { 771 "_listeners": null, 723 772 "_name": "b", 724 773 "_type": "number", … … 730 779 }, 731 780 { 781 "_listeners": null, 732 782 "_name": "2", 733 783 "_type": "object", 734 784 "_valuePreview": { 785 "_listeners": null, 735 786 "_type": "object", 736 787 "_description": "Object", … … 739 790 "_properties": [ 740 791 { 792 "_listeners": null, 741 793 "_name": "c", 742 794 "_type": "number", … … 761 813 "_size": 1, 762 814 "_preview": { 815 "_listeners": null, 763 816 "_type": "object", 764 817 "_subtype": "array", … … 769 822 "_properties": [ 770 823 { 824 "_listeners": null, 771 825 "_name": "0", 772 826 "_type": "object", 773 827 "_subtype": "array", 774 828 "_valuePreview": { 829 "_listeners": null, 775 830 "_type": "object", 776 831 "_subtype": "array", … … 781 836 "_properties": [ 782 837 { 838 "_listeners": null, 783 839 "_name": "0", 784 840 "_type": "object", 785 841 "_valuePreview": { 842 "_listeners": null, 786 843 "_type": "object", 787 844 "_description": "Object", … … 790 847 "_properties": [ 791 848 { 849 "_listeners": null, 792 850 "_name": "a", 793 851 "_type": "number", … … 799 857 }, 800 858 { 859 "_listeners": null, 801 860 "_name": "1", 802 861 "_type": "object", 803 862 "_valuePreview": { 863 "_listeners": null, 804 864 "_type": "object", 805 865 "_description": "Object", … … 808 868 "_properties": [ 809 869 { 870 "_listeners": null, 810 871 "_name": "b", 811 872 "_type": "number", … … 817 878 }, 818 879 { 880 "_listeners": null, 819 881 "_name": "2", 820 882 "_type": "object", 821 883 "_valuePreview": { 884 "_listeners": null, 822 885 "_type": "object", 823 886 "_description": "Object", … … 826 889 "_properties": [ 827 890 { 891 "_listeners": null, 828 892 "_name": "c", 829 893 "_type": "number", … … 852 916 "_size": 1, 853 917 "_preview": { 918 "_listeners": null, 854 919 "_type": "object", 855 920 "_subtype": "array", … … 860 925 "_properties": [ 861 926 { 927 "_listeners": null, 862 928 "_name": "0", 863 929 "_type": "object", … … 879 945 "_size": 100, 880 946 "_preview": { 947 "_listeners": null, 881 948 "_type": "object", 882 949 "_subtype": "array", … … 899 966 "_size": 100, 900 967 "_preview": { 968 "_listeners": null, 901 969 "_type": "object", 902 970 "_subtype": "array", … … 907 975 "_properties": [ 908 976 { 977 "_listeners": null, 909 978 "_name": "0", 910 979 "_type": "number", … … 912 981 }, 913 982 { 983 "_listeners": null, 914 984 "_name": "1", 915 985 "_type": "number", … … 917 987 }, 918 988 { 989 "_listeners": null, 919 990 "_name": "2", 920 991 "_type": "number", … … 922 993 }, 923 994 { 995 "_listeners": null, 924 996 "_name": "3", 925 997 "_type": "number", … … 927 999 }, 928 1000 { 1001 "_listeners": null, 929 1002 "_name": "4", 930 1003 "_type": "number", … … 932 1005 }, 933 1006 { 1007 "_listeners": null, 934 1008 "_name": "5", 935 1009 "_type": "number", … … 937 1011 }, 938 1012 { 1013 "_listeners": null, 939 1014 "_name": "6", 940 1015 "_type": "number", … … 942 1017 }, 943 1018 { 1019 "_listeners": null, 944 1020 "_name": "7", 945 1021 "_type": "number", … … 947 1023 }, 948 1024 { 1025 "_listeners": null, 949 1026 "_name": "8", 950 1027 "_type": "number", … … 952 1029 }, 953 1030 { 1031 "_listeners": null, 954 1032 "_name": "9", 955 1033 "_type": "number", … … 970 1048 "_size": 100, 971 1049 "_preview": { 1050 "_listeners": null, 972 1051 "_type": "object", 973 1052 "_subtype": "array", … … 978 1057 "_properties": [ 979 1058 { 1059 "_listeners": null, 980 1060 "_name": "10", 981 1061 "_type": "number", … … 996 1076 "_size": 3, 997 1077 "_preview": { 1078 "_listeners": null, 998 1079 "_type": "object", 999 1080 "_subtype": "array", … … 1004 1085 "_properties": [ 1005 1086 { 1087 "_listeners": null, 1006 1088 "_name": "0", 1007 1089 "_type": "number", … … 1009 1091 }, 1010 1092 { 1093 "_listeners": null, 1011 1094 "_name": "1", 1012 1095 "_type": "string", … … 1014 1097 }, 1015 1098 { 1099 "_listeners": null, 1016 1100 "_name": "2", 1017 1101 "_type": "object", … … 1033 1117 "_size": 4, 1034 1118 "_preview": { 1119 "_listeners": null, 1035 1120 "_type": "object", 1036 1121 "_subtype": "array", … … 1041 1126 "_properties": [ 1042 1127 { 1128 "_listeners": null, 1043 1129 "_name": "0", 1044 1130 "_type": "number", … … 1046 1132 }, 1047 1133 { 1134 "_listeners": null, 1048 1135 "_name": "1", 1049 1136 "_type": "number", … … 1051 1138 }, 1052 1139 { 1140 "_listeners": null, 1053 1141 "_name": "2", 1054 1142 "_type": "number", … … 1056 1144 }, 1057 1145 { 1146 "_listeners": null, 1058 1147 "_name": "3", 1059 1148 "_type": "number", … … 1074 1163 "_size": 4, 1075 1164 "_preview": { 1165 "_listeners": null, 1076 1166 "_type": "object", 1077 1167 "_subtype": "array", … … 1082 1172 "_properties": [ 1083 1173 { 1174 "_listeners": null, 1084 1175 "_name": "0", 1085 1176 "_type": "number", … … 1087 1178 }, 1088 1179 { 1180 "_listeners": null, 1089 1181 "_name": "1", 1090 1182 "_type": "number", … … 1092 1184 }, 1093 1185 { 1186 "_listeners": null, 1094 1187 "_name": "2", 1095 1188 "_type": "number", … … 1097 1190 }, 1098 1191 { 1192 "_listeners": null, 1099 1193 "_name": "3", 1100 1194 "_type": "number", … … 1115 1209 "_size": 10000000, 1116 1210 "_preview": { 1211 "_listeners": null, 1117 1212 "_type": "object", 1118 1213 "_subtype": "array", … … 1123 1218 "_properties": [ 1124 1219 { 1220 "_listeners": null, 1125 1221 "_name": "0", 1126 1222 "_type": "number", … … 1128 1224 }, 1129 1225 { 1226 "_listeners": null, 1130 1227 "_name": "1", 1131 1228 "_type": "number", … … 1133 1230 }, 1134 1231 { 1232 "_listeners": null, 1135 1233 "_name": "2", 1136 1234 "_type": "number", … … 1138 1236 }, 1139 1237 { 1238 "_listeners": null, 1140 1239 "_name": "3", 1141 1240 "_type": "number", … … 1143 1242 }, 1144 1243 { 1244 "_listeners": null, 1145 1245 "_name": "4", 1146 1246 "_type": "number", … … 1148 1248 }, 1149 1249 { 1250 "_listeners": null, 1150 1251 "_name": "5", 1151 1252 "_type": "number", … … 1153 1254 }, 1154 1255 { 1256 "_listeners": null, 1155 1257 "_name": "6", 1156 1258 "_type": "number", … … 1158 1260 }, 1159 1261 { 1262 "_listeners": null, 1160 1263 "_name": "7", 1161 1264 "_type": "number", … … 1163 1266 }, 1164 1267 { 1268 "_listeners": null, 1165 1269 "_name": "8", 1166 1270 "_type": "number", … … 1168 1272 }, 1169 1273 { 1274 "_listeners": null, 1170 1275 "_name": "9", 1171 1276 "_type": "number", … … 1184 1289 "_description": "Object", 1185 1290 "_preview": { 1291 "_listeners": null, 1186 1292 "_type": "object", 1187 1293 "_description": "Object", … … 1200 1306 "_description": "Object", 1201 1307 "_preview": { 1308 "_listeners": null, 1202 1309 "_type": "object", 1203 1310 "_description": "Object", … … 1206 1313 "_properties": [ 1207 1314 { 1315 "_listeners": null, 1208 1316 "_name": "a", 1209 1317 "_type": "number", … … 1222 1330 "_description": "Object", 1223 1331 "_preview": { 1332 "_listeners": null, 1224 1333 "_type": "object", 1225 1334 "_description": "Object", … … 1228 1337 "_properties": [ 1229 1338 { 1339 "_listeners": null, 1230 1340 "_name": "a", 1231 1341 "_type": "number", … … 1233 1343 }, 1234 1344 { 1345 "_listeners": null, 1235 1346 "_name": "b", 1236 1347 "_type": "number", … … 1238 1349 }, 1239 1350 { 1351 "_listeners": null, 1240 1352 "_name": "c", 1241 1353 "_type": "number", … … 1254 1366 "_description": "Object", 1255 1367 "_preview": { 1368 "_listeners": null, 1256 1369 "_type": "object", 1257 1370 "_description": "Object", … … 1260 1373 "_properties": [ 1261 1374 { 1375 "_listeners": null, 1262 1376 "_name": "a", 1263 1377 "_type": "number", … … 1265 1379 }, 1266 1380 { 1381 "_listeners": null, 1267 1382 "_name": "b", 1268 1383 "_type": "string", … … 1270 1385 }, 1271 1386 { 1387 "_listeners": null, 1272 1388 "_name": "c", 1273 1389 "_type": "object", … … 1276 1392 }, 1277 1393 { 1394 "_listeners": null, 1278 1395 "_name": "d", 1279 1396 "_type": "symbol", … … 1292 1409 "_description": "Object", 1293 1410 "_preview": { 1411 "_listeners": null, 1294 1412 "_type": "object", 1295 1413 "_description": "Object", … … 1298 1416 "_properties": [ 1299 1417 { 1418 "_listeners": null, 1300 1419 "_name": "a", 1301 1420 "_type": "number", … … 1303 1422 }, 1304 1423 { 1424 "_listeners": null, 1305 1425 "_name": "b", 1306 1426 "_type": "object", … … 1319 1439 "_description": "Object", 1320 1440 "_preview": { 1441 "_listeners": null, 1321 1442 "_type": "object", 1322 1443 "_description": "Object", … … 1325 1446 "_properties": [ 1326 1447 { 1448 "_listeners": null, 1327 1449 "_name": "a", 1328 1450 "_type": "function", … … 1330 1452 }, 1331 1453 { 1454 "_listeners": null, 1332 1455 "_name": "b", 1333 1456 "_type": "function", … … 1335 1458 }, 1336 1459 { 1460 "_listeners": null, 1337 1461 "_name": "getter", 1338 1462 "_type": "accessor" 1339 1463 }, 1340 1464 { 1465 "_listeners": null, 1341 1466 "_name": "setter", 1342 1467 "_type": "accessor" … … 1354 1479 "_description": "Foo", 1355 1480 "_preview": { 1481 "_listeners": null, 1356 1482 "_type": "object", 1357 1483 "_description": "Foo", … … 1370 1496 "_description": "Foo2", 1371 1497 "_preview": { 1498 "_listeners": null, 1372 1499 "_type": "object", 1373 1500 "_description": "Foo2", … … 1386 1513 "_description": "Foo3", 1387 1514 "_preview": { 1515 "_listeners": null, 1388 1516 "_type": "object", 1389 1517 "_description": "Foo3", … … 1402 1530 "_description": "Bar", 1403 1531 "_preview": { 1532 "_listeners": null, 1404 1533 "_type": "object", 1405 1534 "_description": "Bar", … … 1408 1537 "_properties": [ 1409 1538 { 1539 "_listeners": null, 1410 1540 "_name": "_x", 1411 1541 "_type": "number", … … 1413 1543 }, 1414 1544 { 1545 "_listeners": null, 1415 1546 "_name": "constructor", 1416 1547 "_type": "function", … … 1418 1549 }, 1419 1550 { 1551 "_listeners": null, 1420 1552 "_name": "x", 1421 1553 "_type": "accessor" … … 1433 1565 "_description": "Bar2", 1434 1566 "_preview": { 1567 "_listeners": null, 1435 1568 "_type": "object", 1436 1569 "_description": "Bar2", … … 1439 1572 "_properties": [ 1440 1573 { 1574 "_listeners": null, 1441 1575 "_name": "_x", 1442 1576 "_type": "number", … … 1455 1589 "_description": "Event", 1456 1590 "_preview": { 1591 "_listeners": null, 1457 1592 "_type": "object", 1458 1593 "_description": "Event", … … 1461 1596 "_properties": [ 1462 1597 { 1598 "_listeners": null, 1463 1599 "_name": "clipboardData", 1464 1600 "_type": "undefined", … … 1466 1602 }, 1467 1603 { 1604 "_listeners": null, 1468 1605 "_name": "type", 1469 1606 "_type": "string", … … 1471 1608 }, 1472 1609 { 1610 "_listeners": null, 1473 1611 "_name": "target", 1474 1612 "_type": "object", … … 1477 1615 }, 1478 1616 { 1617 "_listeners": null, 1479 1618 "_name": "currentTarget", 1480 1619 "_type": "object", … … 1482 1621 }, 1483 1622 { 1623 "_listeners": null, 1484 1624 "_name": "eventPhase", 1485 1625 "_type": "number", … … 1498 1638 "_description": "ArrayBuffer", 1499 1639 "_preview": { 1640 "_listeners": null, 1500 1641 "_type": "object", 1501 1642 "_description": "ArrayBuffer", … … 1504 1645 "_properties": [ 1505 1646 { 1647 "_listeners": null, 1506 1648 "_name": "byteLength", 1507 1649 "_type": "number", … … 1520 1662 "_description": "DataView", 1521 1663 "_preview": { 1664 "_listeners": null, 1522 1665 "_type": "object", 1523 1666 "_description": "DataView", … … 1526 1669 "_properties": [ 1527 1670 { 1671 "_listeners": null, 1528 1672 "_name": "byteOffset", 1529 1673 "_type": "number", … … 1531 1675 }, 1532 1676 { 1677 "_listeners": null, 1533 1678 "_name": "byteLength", 1534 1679 "_type": "number", … … 1536 1681 }, 1537 1682 { 1683 "_listeners": null, 1538 1684 "_name": "buffer", 1539 1685 "_type": "object", … … 1552 1698 "_description": "Object", 1553 1699 "_preview": { 1700 "_listeners": null, 1554 1701 "_type": "object", 1555 1702 "_description": "Object", … … 1558 1705 "_properties": [ 1559 1706 { 1707 "_listeners": null, 1560 1708 "_name": "prop", 1561 1709 "_type": "number", … … 1563 1711 }, 1564 1712 { 1713 "_listeners": null, 1565 1714 "_name": "Symbol()", 1566 1715 "_type": "number", … … 1568 1717 }, 1569 1718 { 1719 "_listeners": null, 1570 1720 "_name": "Symbol(sym)", 1571 1721 "_type": "number", … … 1573 1723 }, 1574 1724 { 1725 "_listeners": null, 1575 1726 "_name": "Symbol(sym)", 1576 1727 "_type": "number", … … 1578 1729 }, 1579 1730 { 1731 "_listeners": null, 1580 1732 "_name": "Symbol(Symbol.iterator)", 1581 1733 "_type": "symbol", … … 1595 1747 "_description": "body", 1596 1748 "_preview": { 1749 "_listeners": null, 1597 1750 "_type": "object", 1598 1751 "_subtype": "node", … … 1602 1755 "_properties": [ 1603 1756 { 1757 "_listeners": null, 1604 1758 "_name": "aLink", 1605 1759 "_type": "string", … … 1607 1761 }, 1608 1762 { 1763 "_listeners": null, 1609 1764 "_name": "background", 1610 1765 "_type": "string", … … 1612 1767 }, 1613 1768 { 1769 "_listeners": null, 1614 1770 "_name": "bgColor", 1615 1771 "_type": "string", … … 1617 1773 }, 1618 1774 { 1775 "_listeners": null, 1619 1776 "_name": "link", 1620 1777 "_type": "string", … … 1622 1779 }, 1623 1780 { 1781 "_listeners": null, 1624 1782 "_name": "text", 1625 1783 "_type": "string", … … 1639 1797 "_description": "div.foo.bar", 1640 1798 "_preview": { 1799 "_listeners": null, 1641 1800 "_type": "object", 1642 1801 "_subtype": "node", … … 1646 1805 "_properties": [ 1647 1806 { 1807 "_listeners": null, 1648 1808 "_name": "align", 1649 1809 "_type": "string", … … 1651 1811 }, 1652 1812 { 1813 "_listeners": null, 1653 1814 "_name": "title", 1654 1815 "_type": "string", … … 1656 1817 }, 1657 1818 { 1819 "_listeners": null, 1658 1820 "_name": "lang", 1659 1821 "_type": "string", … … 1661 1823 }, 1662 1824 { 1825 "_listeners": null, 1663 1826 "_name": "translate", 1664 1827 "_type": "boolean", … … 1666 1829 }, 1667 1830 { 1831 "_listeners": null, 1668 1832 "_name": "dir", 1669 1833 "_type": "string", … … 1683 1847 "_description": "span#foo", 1684 1848 "_preview": { 1849 "_listeners": null, 1685 1850 "_type": "object", 1686 1851 "_subtype": "node", … … 1690 1855 "_properties": [ 1691 1856 { 1857 "_listeners": null, 1692 1858 "_name": "title", 1693 1859 "_type": "string", … … 1695 1861 }, 1696 1862 { 1863 "_listeners": null, 1697 1864 "_name": "lang", 1698 1865 "_type": "string", … … 1700 1867 }, 1701 1868 { 1869 "_listeners": null, 1702 1870 "_name": "translate", 1703 1871 "_type": "boolean", … … 1705 1873 }, 1706 1874 { 1875 "_listeners": null, 1707 1876 "_name": "dir", 1708 1877 "_type": "string", … … 1710 1879 }, 1711 1880 { 1881 "_listeners": null, 1712 1882 "_name": "tabIndex", 1713 1883 "_type": "number", … … 1727 1897 "_description": "input", 1728 1898 "_preview": { 1899 "_listeners": null, 1729 1900 "_type": "object", 1730 1901 "_subtype": "node", … … 1734 1905 "_properties": [ 1735 1906 { 1907 "_listeners": null, 1736 1908 "_name": "selectionStart", 1737 1909 "_type": "number", … … 1739 1911 }, 1740 1912 { 1913 "_listeners": null, 1741 1914 "_name": "selectionEnd", 1742 1915 "_type": "number", … … 1744 1917 }, 1745 1918 { 1919 "_listeners": null, 1746 1920 "_name": "selectionDirection", 1747 1921 "_type": "string", … … 1749 1923 }, 1750 1924 { 1925 "_listeners": null, 1751 1926 "_name": "accept", 1752 1927 "_type": "string", … … 1754 1929 }, 1755 1930 { 1931 "_listeners": null, 1756 1932 "_name": "alt", 1757 1933 "_type": "string", … … 1771 1947 "_description": "#text", 1772 1948 "_preview": { 1949 "_listeners": null, 1773 1950 "_type": "object", 1774 1951 "_subtype": "node", … … 1778 1955 "_properties": [ 1779 1956 { 1957 "_listeners": null, 1780 1958 "_name": "wholeText", 1781 1959 "_type": "string", … … 1783 1961 }, 1784 1962 { 1963 "_listeners": null, 1785 1964 "_name": "splitText", 1786 1965 "_type": "function", … … 1788 1967 }, 1789 1968 { 1969 "_listeners": null, 1790 1970 "_name": "replaceWholeText", 1791 1971 "_type": "function", … … 1793 1973 }, 1794 1974 { 1975 "_listeners": null, 1795 1976 "_name": "data", 1796 1977 "_type": "string", … … 1798 1979 }, 1799 1980 { 1981 "_listeners": null, 1800 1982 "_name": "length", 1801 1983 "_type": "number", … … 1815 1997 "_description": "#comment", 1816 1998 "_preview": { 1999 "_listeners": null, 1817 2000 "_type": "object", 1818 2001 "_subtype": "node", … … 1822 2005 "_properties": [ 1823 2006 { 2007 "_listeners": null, 1824 2008 "_name": "data", 1825 2009 "_type": "string", … … 1827 2011 }, 1828 2012 { 2013 "_listeners": null, 1829 2014 "_name": "length", 1830 2015 "_type": "number", … … 1832 2017 }, 1833 2018 { 2019 "_listeners": null, 1834 2020 "_name": "previousElementSibling", 1835 2021 "_type": "object", … … 1838 2024 }, 1839 2025 { 2026 "_listeners": null, 1840 2027 "_name": "nextElementSibling", 1841 2028 "_type": "object", … … 1844 2031 }, 1845 2032 { 2033 "_listeners": null, 1846 2034 "_name": "substringData", 1847 2035 "_type": "function", … … 1861 2049 "_description": "rect.test", 1862 2050 "_preview": { 2051 "_listeners": null, 1863 2052 "_type": "object", 1864 2053 "_subtype": "node", … … 1868 2057 "_properties": [ 1869 2058 { 2059 "_listeners": null, 1870 2060 "_name": "x", 1871 2061 "_type": "object", … … 1873 2063 }, 1874 2064 { 2065 "_listeners": null, 1875 2066 "_name": "y", 1876 2067 "_type": "object", … … 1878 2069 }, 1879 2070 { 2071 "_listeners": null, 1880 2072 "_name": "width", 1881 2073 "_type": "object", … … 1883 2075 }, 1884 2076 { 2077 "_listeners": null, 1885 2078 "_name": "height", 1886 2079 "_type": "object", … … 1888 2081 }, 1889 2082 { 2083 "_listeners": null, 1890 2084 "_name": "rx", 1891 2085 "_type": "object", … … 1906 2100 "_size": 7, 1907 2101 "_preview": { 2102 "_listeners": null, 1908 2103 "_type": "object", 1909 2104 "_subtype": "array", … … 1914 2109 "_properties": [ 1915 2110 { 2111 "_listeners": null, 1916 2112 "_name": "0", 1917 2113 "_type": "object", … … 1920 2116 }, 1921 2117 { 2118 "_listeners": null, 1922 2119 "_name": "1", 1923 2120 "_type": "object", … … 1926 2123 }, 1927 2124 { 2125 "_listeners": null, 1928 2126 "_name": "2", 1929 2127 "_type": "object", … … 1932 2130 }, 1933 2131 { 2132 "_listeners": null, 1934 2133 "_name": "3", 1935 2134 "_type": "object", … … 1938 2137 }, 1939 2138 { 2139 "_listeners": null, 1940 2140 "_name": "4", 1941 2141 "_type": "object", … … 1944 2144 }, 1945 2145 { 2146 "_listeners": null, 1946 2147 "_name": "5", 1947 2148 "_type": "object", … … 1950 2151 }, 1951 2152 { 2153 "_listeners": null, 1952 2154 "_name": "6", 1953 2155 "_type": "object", … … 1969 2171 "_size": 3, 1970 2172 "_preview": { 2173 "_listeners": null, 1971 2174 "_type": "object", 1972 2175 "_subtype": "array", … … 1977 2180 "_properties": [ 1978 2181 { 2182 "_listeners": null, 1979 2183 "_name": "0", 1980 2184 "_type": "object", … … 1983 2187 }, 1984 2188 { 2189 "_listeners": null, 1985 2190 "_name": "1", 1986 2191 "_type": "object", … … 1989 2194 }, 1990 2195 { 2196 "_listeners": null, 1991 2197 "_name": "2", 1992 2198 "_type": "object", … … 2008 2214 "_size": 3, 2009 2215 "_preview": { 2216 "_listeners": null, 2010 2217 "_type": "object", 2011 2218 "_subtype": "array", … … 2016 2223 "_properties": [ 2017 2224 { 2225 "_listeners": null, 2018 2226 "_name": "0", 2019 2227 "_type": "object", … … 2022 2230 }, 2023 2231 { 2232 "_listeners": null, 2024 2233 "_name": "1", 2025 2234 "_type": "object", … … 2028 2237 }, 2029 2238 { 2239 "_listeners": null, 2030 2240 "_name": "2", 2031 2241 "_type": "object", … … 2047 2257 "_size": 3, 2048 2258 "_preview": { 2259 "_listeners": null, 2049 2260 "_type": "object", 2050 2261 "_subtype": "array", … … 2055 2266 "_properties": [ 2056 2267 { 2268 "_listeners": null, 2057 2269 "_name": "0", 2058 2270 "_type": "object", … … 2061 2273 }, 2062 2274 { 2275 "_listeners": null, 2063 2276 "_name": "1", 2064 2277 "_type": "object", … … 2067 2280 }, 2068 2281 { 2282 "_listeners": null, 2069 2283 "_name": "2", 2070 2284 "_type": "object", … … 2085 2299 "_description": "TypeError: undefined is not an object (evaluating '[].x.x')", 2086 2300 "_preview": { 2301 "_listeners": null, 2087 2302 "_type": "object", 2088 2303 "_subtype": "error", … … 2092 2307 "_properties": [ 2093 2308 { 2309 "_listeners": null, 2094 2310 "_name": "message", 2095 2311 "_type": "string", … … 2097 2313 }, 2098 2314 { 2315 "_listeners": null, 2099 2316 "_name": "line", 2100 2317 "_type": "number", … … 2102 2319 }, 2103 2320 { 2321 "_listeners": null, 2104 2322 "_name": "column", 2105 2323 "_type": "number", … … 2107 2325 }, 2108 2326 { 2327 "_listeners": null, 2109 2328 "_name": "stack", 2110 2329 "_type": "string", … … 2124 2343 "_description": "SyntaxError: Unexpected token ')'", 2125 2344 "_preview": { 2345 "_listeners": null, 2126 2346 "_type": "object", 2127 2347 "_subtype": "error", … … 2131 2351 "_properties": [ 2132 2352 { 2353 "_listeners": null, 2133 2354 "_name": "message", 2134 2355 "_type": "string", … … 2136 2357 }, 2137 2358 { 2359 "_listeners": null, 2138 2360 "_name": "line", 2139 2361 "_type": "number", … … 2141 2363 }, 2142 2364 { 2365 "_listeners": null, 2143 2366 "_name": "column", 2144 2367 "_type": "number", … … 2146 2369 }, 2147 2370 { 2371 "_listeners": null, 2148 2372 "_name": "stack", 2149 2373 "_type": "string", … … 2163 2387 "_description": "Error: IndexSizeError: DOM Exception 1", 2164 2388 "_preview": { 2389 "_listeners": null, 2165 2390 "_type": "object", 2166 2391 "_subtype": "error", … … 2170 2395 "_properties": [ 2171 2396 { 2397 "_listeners": null, 2172 2398 "_name": "code", 2173 2399 "_type": "number", … … 2175 2401 }, 2176 2402 { 2403 "_listeners": null, 2177 2404 "_name": "name", 2178 2405 "_type": "string", … … 2180 2407 }, 2181 2408 { 2409 "_listeners": null, 2182 2410 "_name": "message", 2183 2411 "_type": "string", … … 2185 2413 }, 2186 2414 { 2415 "_listeners": null, 2187 2416 "_name": "line", 2188 2417 "_type": "number", … … 2190 2419 }, 2191 2420 { 2421 "_listeners": null, 2192 2422 "_name": "column", 2193 2423 "_type": "number", … … 2208 2438 "_size": 0, 2209 2439 "_preview": { 2440 "_listeners": null, 2210 2441 "_type": "object", 2211 2442 "_subtype": "map", … … 2228 2459 "_size": 2, 2229 2460 "_preview": { 2461 "_listeners": null, 2230 2462 "_type": "object", 2231 2463 "_subtype": "map", … … 2237 2469 "_entries": [ 2238 2470 { 2471 "_listeners": null, 2239 2472 "_key": { 2473 "_listeners": null, 2240 2474 "_type": "number", 2241 2475 "_description": "1", … … 2246 2480 }, 2247 2481 "_value": { 2482 "_listeners": null, 2248 2483 "_type": "number", 2249 2484 "_description": "2", … … 2255 2490 }, 2256 2491 { 2492 "_listeners": null, 2257 2493 "_key": { 2494 "_listeners": null, 2258 2495 "_type": "string", 2259 2496 "_description": "key", … … 2264 2501 }, 2265 2502 "_value": { 2503 "_listeners": null, 2266 2504 "_type": "string", 2267 2505 "_description": "value", … … 2285 2523 "_size": 2, 2286 2524 "_preview": { 2525 "_listeners": null, 2287 2526 "_type": "object", 2288 2527 "_subtype": "map", … … 2294 2533 "_entries": [ 2295 2534 { 2535 "_listeners": null, 2296 2536 "_key": { 2537 "_listeners": null, 2297 2538 "_type": "object", 2298 2539 "_description": "Object", … … 2301 2542 "_properties": [ 2302 2543 { 2544 "_listeners": null, 2303 2545 "_name": "a", 2304 2546 "_type": "number", … … 2309 2551 }, 2310 2552 "_value": { 2553 "_listeners": null, 2311 2554 "_type": "object", 2312 2555 "_description": "Object", … … 2315 2558 "_properties": [ 2316 2559 { 2560 "_listeners": null, 2317 2561 "_name": "b", 2318 2562 "_type": "number", … … 2324 2568 }, 2325 2569 { 2570 "_listeners": null, 2326 2571 "_key": { 2572 "_listeners": null, 2327 2573 "_type": "object", 2328 2574 "_subtype": "node", … … 2332 2578 "_properties": [ 2333 2579 { 2580 "_listeners": null, 2334 2581 "_name": "aLink", 2335 2582 "_type": "string", … … 2337 2584 }, 2338 2585 { 2586 "_listeners": null, 2339 2587 "_name": "background", 2340 2588 "_type": "string", … … 2342 2590 }, 2343 2591 { 2592 "_listeners": null, 2344 2593 "_name": "bgColor", 2345 2594 "_type": "string", … … 2347 2596 }, 2348 2597 { 2598 "_listeners": null, 2349 2599 "_name": "link", 2350 2600 "_type": "string", … … 2352 2602 }, 2353 2603 { 2604 "_listeners": null, 2354 2605 "_name": "text", 2355 2606 "_type": "string", … … 2360 2611 }, 2361 2612 "_value": { 2613 "_listeners": null, 2362 2614 "_type": "object", 2363 2615 "_subtype": "array", … … 2368 2620 "_properties": [ 2369 2621 { 2622 "_listeners": null, 2370 2623 "_name": "0", 2371 2624 "_type": "number", … … 2373 2626 }, 2374 2627 { 2628 "_listeners": null, 2375 2629 "_name": "1", 2376 2630 "_type": "number", … … 2394 2648 "_size": 101, 2395 2649 "_preview": { 2650 "_listeners": null, 2396 2651 "_type": "object", 2397 2652 "_subtype": "map", … … 2403 2658 "_entries": [ 2404 2659 { 2660 "_listeners": null, 2405 2661 "_key": { 2662 "_listeners": null, 2406 2663 "_type": "number", 2407 2664 "_description": "0", … … 2412 2669 }, 2413 2670 "_value": { 2671 "_listeners": null, 2414 2672 "_type": "number", 2415 2673 "_description": "0", … … 2421 2679 }, 2422 2680 { 2681 "_listeners": null, 2423 2682 "_key": { 2683 "_listeners": null, 2424 2684 "_type": "number", 2425 2685 "_description": "1", … … 2430 2690 }, 2431 2691 "_value": { 2692 "_listeners": null, 2432 2693 "_type": "number", 2433 2694 "_description": "1", … … 2439 2700 }, 2440 2701 { 2702 "_listeners": null, 2441 2703 "_key": { 2704 "_listeners": null, 2442 2705 "_type": "number", 2443 2706 "_description": "2", … … 2448 2711 }, 2449 2712 "_value": { 2713 "_listeners": null, 2450 2714 "_type": "number", 2451 2715 "_description": "2", … … 2457 2721 }, 2458 2722 { 2723 "_listeners": null, 2459 2724 "_key": { 2725 "_listeners": null, 2460 2726 "_type": "number", 2461 2727 "_description": "3", … … 2466 2732 }, 2467 2733 "_value": { 2734 "_listeners": null, 2468 2735 "_type": "number", 2469 2736 "_description": "3", … … 2475 2742 }, 2476 2743 { 2744 "_listeners": null, 2477 2745 "_key": { 2746 "_listeners": null, 2478 2747 "_type": "number", 2479 2748 "_description": "4", … … 2484 2753 }, 2485 2754 "_value": { 2755 "_listeners": null, 2486 2756 "_type": "number", 2487 2757 "_description": "4", … … 2505 2775 "_size": 1, 2506 2776 "_preview": { 2777 "_listeners": null, 2507 2778 "_type": "object", 2508 2779 "_subtype": "map", … … 2514 2785 "_entries": [ 2515 2786 { 2787 "_listeners": null, 2516 2788 "_key": { 2789 "_listeners": null, 2517 2790 "_type": "object", 2518 2791 "_subtype": "map", … … 2525 2798 }, 2526 2799 "_value": { 2800 "_listeners": null, 2527 2801 "_type": "object", 2528 2802 "_subtype": "map", … … 2548 2822 "_size": 1, 2549 2823 "_preview": { 2824 "_listeners": null, 2550 2825 "_type": "object", 2551 2826 "_subtype": "weakmap", … … 2557 2832 "_entries": [ 2558 2833 { 2834 "_listeners": null, 2559 2835 "_key": { 2836 "_listeners": null, 2560 2837 "_type": "object", 2561 2838 "_description": "Object", … … 2564 2841 "_properties": [ 2565 2842 { 2843 "_listeners": null, 2566 2844 "_name": "id", 2567 2845 "_type": "number", … … 2572 2850 }, 2573 2851 "_value": { 2852 "_listeners": null, 2574 2853 "_type": "object", 2575 2854 "_subtype": "array", … … 2580 2859 "_properties": [ 2581 2860 { 2861 "_listeners": null, 2582 2862 "_name": "0", 2583 2863 "_type": "number", … … 2585 2865 }, 2586 2866 { 2867 "_listeners": null, 2587 2868 "_name": "1", 2588 2869 "_type": "number", … … 2606 2887 "_size": 0, 2607 2888 "_preview": { 2889 "_listeners": null, 2608 2890 "_type": "object", 2609 2891 "_subtype": "set", … … 2626 2908 "_size": 3, 2627 2909 "_preview": { 2910 "_listeners": null, 2628 2911 "_type": "object", 2629 2912 "_subtype": "set", … … 2635 2918 "_entries": [ 2636 2919 { 2637 "_value": { 2920 "_listeners": null, 2921 "_value": { 2922 "_listeners": null, 2638 2923 "_type": "number", 2639 2924 "_description": "1", … … 2645 2930 }, 2646 2931 { 2647 "_value": { 2932 "_listeners": null, 2933 "_value": { 2934 "_listeners": null, 2648 2935 "_type": "number", 2649 2936 "_description": "2", … … 2655 2942 }, 2656 2943 { 2657 "_value": { 2944 "_listeners": null, 2945 "_value": { 2946 "_listeners": null, 2658 2947 "_type": "string", 2659 2948 "_description": "key", … … 2677 2966 "_size": 3, 2678 2967 "_preview": { 2968 "_listeners": null, 2679 2969 "_type": "object", 2680 2970 "_subtype": "set", … … 2686 2976 "_entries": [ 2687 2977 { 2688 "_value": { 2978 "_listeners": null, 2979 "_value": { 2980 "_listeners": null, 2689 2981 "_type": "object", 2690 2982 "_description": "Object", … … 2693 2985 "_properties": [ 2694 2986 { 2987 "_listeners": null, 2695 2988 "_name": "a", 2696 2989 "_type": "number", … … 2702 2995 }, 2703 2996 { 2704 "_value": { 2997 "_listeners": null, 2998 "_value": { 2999 "_listeners": null, 2705 3000 "_type": "object", 2706 3001 "_subtype": "node", … … 2710 3005 "_properties": [ 2711 3006 { 3007 "_listeners": null, 2712 3008 "_name": "aLink", 2713 3009 "_type": "string", … … 2715 3011 }, 2716 3012 { 3013 "_listeners": null, 2717 3014 "_name": "background", 2718 3015 "_type": "string", … … 2720 3017 }, 2721 3018 { 3019 "_listeners": null, 2722 3020 "_name": "bgColor", 2723 3021 "_type": "string", … … 2725 3023 }, 2726 3024 { 3025 "_listeners": null, 2727 3026 "_name": "link", 2728 3027 "_type": "string", … … 2730 3029 }, 2731 3030 { 3031 "_listeners": null, 2732 3032 "_name": "text", 2733 3033 "_type": "string", … … 2739 3039 }, 2740 3040 { 2741 "_value": { 3041 "_listeners": null, 3042 "_value": { 3043 "_listeners": null, 2742 3044 "_type": "object", 2743 3045 "_subtype": "array", … … 2748 3050 "_properties": [ 2749 3051 { 3052 "_listeners": null, 2750 3053 "_name": "0", 2751 3054 "_type": "number", … … 2753 3056 }, 2754 3057 { 3058 "_listeners": null, 2755 3059 "_name": "1", 2756 3060 "_type": "number", … … 2774 3078 "_size": 101, 2775 3079 "_preview": { 3080 "_listeners": null, 2776 3081 "_type": "object", 2777 3082 "_subtype": "set", … … 2783 3088 "_entries": [ 2784 3089 { 2785 "_value": { 3090 "_listeners": null, 3091 "_value": { 3092 "_listeners": null, 2786 3093 "_type": "number", 2787 3094 "_description": "0", … … 2793 3100 }, 2794 3101 { 2795 "_value": { 3102 "_listeners": null, 3103 "_value": { 3104 "_listeners": null, 2796 3105 "_type": "number", 2797 3106 "_description": "1", … … 2803 3112 }, 2804 3113 { 2805 "_value": { 3114 "_listeners": null, 3115 "_value": { 3116 "_listeners": null, 2806 3117 "_type": "number", 2807 3118 "_description": "2", … … 2813 3124 }, 2814 3125 { 2815 "_value": { 3126 "_listeners": null, 3127 "_value": { 3128 "_listeners": null, 2816 3129 "_type": "number", 2817 3130 "_description": "3", … … 2823 3136 }, 2824 3137 { 2825 "_value": { 3138 "_listeners": null, 3139 "_value": { 3140 "_listeners": null, 2826 3141 "_type": "number", 2827 3142 "_description": "4", … … 2845 3160 "_size": 1, 2846 3161 "_preview": { 3162 "_listeners": null, 2847 3163 "_type": "object", 2848 3164 "_subtype": "set", … … 2854 3170 "_entries": [ 2855 3171 { 2856 "_value": { 3172 "_listeners": null, 3173 "_value": { 3174 "_listeners": null, 2857 3175 "_type": "object", 2858 3176 "_subtype": "set", … … 2878 3196 "_size": 1, 2879 3197 "_preview": { 3198 "_listeners": null, 2880 3199 "_type": "object", 2881 3200 "_subtype": "weakset", … … 2887 3206 "_entries": [ 2888 3207 { 2889 "_value": { 3208 "_listeners": null, 3209 "_value": { 3210 "_listeners": null, 2890 3211 "_type": "object", 2891 3212 "_description": "Object", … … 2894 3215 "_properties": [ 2895 3216 { 3217 "_listeners": null, 2896 3218 "_name": "id", 2897 3219 "_type": "number", … … 2914 3236 "_description": "String Iterator", 2915 3237 "_preview": { 3238 "_listeners": null, 2916 3239 "_type": "object", 2917 3240 "_subtype": "iterator", … … 2921 3244 "_properties": [ 2922 3245 { 3246 "_listeners": null, 2923 3247 "_name": "string", 2924 3248 "_type": "string", … … 2929 3253 "_entries": [ 2930 3254 { 2931 "_value": { 3255 "_listeners": null, 3256 "_value": { 3257 "_listeners": null, 2932 3258 "_type": "string", 2933 3259 "_description": "a", … … 2950 3276 "_description": "String Iterator", 2951 3277 "_preview": { 3278 "_listeners": null, 2952 3279 "_type": "object", 2953 3280 "_subtype": "iterator", … … 2957 3284 "_properties": [ 2958 3285 { 3286 "_listeners": null, 2959 3287 "_name": "string", 2960 3288 "_type": "string", … … 2965 3293 "_entries": [ 2966 3294 { 2967 "_value": { 3295 "_listeners": null, 3296 "_value": { 3297 "_listeners": null, 2968 3298 "_type": "string", 2969 3299 "_description": "l", … … 2975 3305 }, 2976 3306 { 2977 "_value": { 3307 "_listeners": null, 3308 "_value": { 3309 "_listeners": null, 2978 3310 "_type": "string", 2979 3311 "_description": "o", … … 2985 3317 }, 2986 3318 { 2987 "_value": { 3319 "_listeners": null, 3320 "_value": { 3321 "_listeners": null, 2988 3322 "_type": "string", 2989 3323 "_description": "n", … … 2995 3329 }, 2996 3330 { 2997 "_value": { 3331 "_listeners": null, 3332 "_value": { 3333 "_listeners": null, 2998 3334 "_type": "string", 2999 3335 "_description": "g", … … 3005 3341 }, 3006 3342 { 3007 "_value": { 3343 "_listeners": null, 3344 "_value": { 3345 "_listeners": null, 3008 3346 "_type": "string", 3009 3347 "_description": " ", … … 3026 3364 "_description": "Array Iterator", 3027 3365 "_preview": { 3366 "_listeners": null, 3028 3367 "_type": "object", 3029 3368 "_subtype": "iterator", … … 3033 3372 "_properties": [ 3034 3373 { 3374 "_listeners": null, 3035 3375 "_name": "array", 3036 3376 "_type": "object", 3037 3377 "_subtype": "array", 3038 3378 "_valuePreview": { 3379 "_listeners": null, 3039 3380 "_type": "object", 3040 3381 "_subtype": "array", … … 3049 3390 }, 3050 3391 { 3392 "_listeners": null, 3051 3393 "_name": "kind", 3052 3394 "_type": "string", … … 3067 3409 "_description": "Array Iterator", 3068 3410 "_preview": { 3411 "_listeners": null, 3069 3412 "_type": "object", 3070 3413 "_subtype": "iterator", … … 3074 3417 "_properties": [ 3075 3418 { 3419 "_listeners": null, 3076 3420 "_name": "array", 3077 3421 "_type": "object", 3078 3422 "_subtype": "array", 3079 3423 "_valuePreview": { 3424 "_listeners": null, 3080 3425 "_type": "object", 3081 3426 "_subtype": "array", … … 3086 3431 "_properties": [ 3087 3432 { 3433 "_listeners": null, 3088 3434 "_name": "0", 3089 3435 "_type": "number", … … 3096 3442 }, 3097 3443 { 3444 "_listeners": null, 3098 3445 "_name": "kind", 3099 3446 "_type": "string", … … 3104 3451 "_entries": [ 3105 3452 { 3106 "_value": { 3453 "_listeners": null, 3454 "_value": { 3455 "_listeners": null, 3107 3456 "_type": "number", 3108 3457 "_description": "1", … … 3125 3474 "_description": "Array Iterator", 3126 3475 "_preview": { 3476 "_listeners": null, 3127 3477 "_type": "object", 3128 3478 "_subtype": "iterator", … … 3132 3482 "_properties": [ 3133 3483 { 3484 "_listeners": null, 3134 3485 "_name": "array", 3135 3486 "_type": "object", … … 3139 3490 }, 3140 3491 { 3492 "_listeners": null, 3141 3493 "_name": "kind", 3142 3494 "_type": "string", … … 3147 3499 "_entries": [ 3148 3500 { 3149 "_value": { 3501 "_listeners": null, 3502 "_value": { 3503 "_listeners": null, 3150 3504 "_type": "number", 3151 3505 "_description": "1", … … 3157 3511 }, 3158 3512 { 3159 "_value": { 3513 "_listeners": null, 3514 "_value": { 3515 "_listeners": null, 3160 3516 "_type": "string", 3161 3517 "_description": "two", … … 3167 3523 }, 3168 3524 { 3169 "_value": { 3525 "_listeners": null, 3526 "_value": { 3527 "_listeners": null, 3170 3528 "_type": "number", 3171 3529 "_description": "3", … … 3177 3535 }, 3178 3536 { 3179 "_value": { 3537 "_listeners": null, 3538 "_value": { 3539 "_listeners": null, 3180 3540 "_type": "string", 3181 3541 "_description": "four", … … 3187 3547 }, 3188 3548 { 3189 "_value": { 3549 "_listeners": null, 3550 "_value": { 3551 "_listeners": null, 3190 3552 "_type": "number", 3191 3553 "_description": "5", … … 3208 3570 "_description": "Array Iterator", 3209 3571 "_preview": { 3572 "_listeners": null, 3210 3573 "_type": "object", 3211 3574 "_subtype": "iterator", … … 3215 3578 "_properties": [ 3216 3579 { 3580 "_listeners": null, 3217 3581 "_name": "array", 3218 3582 "_type": "object", … … 3222 3586 }, 3223 3587 { 3588 "_listeners": null, 3224 3589 "_name": "kind", 3225 3590 "_type": "string", … … 3230 3595 "_entries": [ 3231 3596 { 3232 "_value": { 3597 "_listeners": null, 3598 "_value": { 3599 "_listeners": null, 3233 3600 "_type": "number", 3234 3601 "_description": "0", … … 3240 3607 }, 3241 3608 { 3242 "_value": { 3609 "_listeners": null, 3610 "_value": { 3611 "_listeners": null, 3243 3612 "_type": "number", 3244 3613 "_description": "1", … … 3250 3619 }, 3251 3620 { 3252 "_value": { 3621 "_listeners": null, 3622 "_value": { 3623 "_listeners": null, 3253 3624 "_type": "number", 3254 3625 "_description": "2", … … 3260 3631 }, 3261 3632 { 3262 "_value": { 3633 "_listeners": null, 3634 "_value": { 3635 "_listeners": null, 3263 3636 "_type": "number", 3264 3637 "_description": "3", … … 3270 3643 }, 3271 3644 { 3272 "_value": { 3645 "_listeners": null, 3646 "_value": { 3647 "_listeners": null, 3273 3648 "_type": "number", 3274 3649 "_description": "4", … … 3291 3666 "_description": "Array Iterator", 3292 3667 "_preview": { 3668 "_listeners": null, 3293 3669 "_type": "object", 3294 3670 "_subtype": "iterator", … … 3298 3674 "_properties": [ 3299 3675 { 3676 "_listeners": null, 3300 3677 "_name": "array", 3301 3678 "_type": "object", … … 3305 3682 }, 3306 3683 { 3684 "_listeners": null, 3307 3685 "_name": "kind", 3308 3686 "_type": "string", … … 3313 3691 "_entries": [ 3314 3692 { 3315 "_value": { 3693 "_listeners": null, 3694 "_value": { 3695 "_listeners": null, 3316 3696 "_type": "object", 3317 3697 "_subtype": "array", … … 3322 3702 "_properties": [ 3323 3703 { 3704 "_listeners": null, 3324 3705 "_name": "0", 3325 3706 "_type": "number", … … 3327 3708 }, 3328 3709 { 3710 "_listeners": null, 3329 3711 "_name": "1", 3330 3712 "_type": "number", … … 3336 3718 }, 3337 3719 { 3338 "_value": { 3720 "_listeners": null, 3721 "_value": { 3722 "_listeners": null, 3339 3723 "_type": "object", 3340 3724 "_subtype": "array", … … 3345 3729 "_properties": [ 3346 3730 { 3731 "_listeners": null, 3347 3732 "_name": "0", 3348 3733 "_type": "number", … … 3350 3735 }, 3351 3736 { 3737 "_listeners": null, 3352 3738 "_name": "1", 3353 3739 "_type": "string", … … 3359 3745 }, 3360 3746 { 3361 "_value": { 3747 "_listeners": null, 3748 "_value": { 3749 "_listeners": null, 3362 3750 "_type": "object", 3363 3751 "_subtype": "array", … … 3368 3756 "_properties": [ 3369 3757 { 3758 "_listeners": null, 3370 3759 "_name": "0", 3371 3760 "_type": "number", … … 3373 3762 }, 3374 3763 { 3764 "_listeners": null, 3375 3765 "_name": "1", 3376 3766 "_type": "number", … … 3382 3772 }, 3383 3773 { 3384 "_value": { 3774 "_listeners": null, 3775 "_value": { 3776 "_listeners": null, 3385 3777 "_type": "object", 3386 3778 "_subtype": "array", … … 3391 3783 "_properties": [ 3392 3784 { 3785 "_listeners": null, 3393 3786 "_name": "0", 3394 3787 "_type": "number", … … 3396 3789 }, 3397 3790 { 3791 "_listeners": null, 3398 3792 "_name": "1", 3399 3793 "_type": "string", … … 3405 3799 }, 3406 3800 { 3407 "_value": { 3801 "_listeners": null, 3802 "_value": { 3803 "_listeners": null, 3408 3804 "_type": "object", 3409 3805 "_subtype": "array", … … 3414 3810 "_properties": [ 3415 3811 { 3812 "_listeners": null, 3416 3813 "_name": "0", 3417 3814 "_type": "number", … … 3419 3816 }, 3420 3817 { 3818 "_listeners": null, 3421 3819 "_name": "1", 3422 3820 "_type": "number", … … 3439 3837 "_description": "Map Iterator", 3440 3838 "_preview": { 3839 "_listeners": null, 3441 3840 "_type": "object", 3442 3841 "_subtype": "iterator", … … 3446 3845 "_properties": [ 3447 3846 { 3847 "_listeners": null, 3448 3848 "_name": "map", 3449 3849 "_type": "object", … … 3453 3853 }, 3454 3854 { 3855 "_listeners": null, 3455 3856 "_name": "kind", 3456 3857 "_type": "string", … … 3461 3862 "_entries": [ 3462 3863 { 3463 "_value": { 3864 "_listeners": null, 3865 "_value": { 3866 "_listeners": null, 3464 3867 "_type": "number", 3465 3868 "_description": "2", … … 3471 3874 }, 3472 3875 { 3473 "_value": { 3876 "_listeners": null, 3877 "_value": { 3878 "_listeners": null, 3474 3879 "_type": "string", 3475 3880 "_description": "value", … … 3492 3897 "_description": "Map Iterator", 3493 3898 "_preview": { 3899 "_listeners": null, 3494 3900 "_type": "object", 3495 3901 "_subtype": "iterator", … … 3499 3905 "_properties": [ 3500 3906 { 3907 "_listeners": null, 3501 3908 "_name": "map", 3502 3909 "_type": "object", … … 3506 3913 }, 3507 3914 { 3915 "_listeners": null, 3508 3916 "_name": "kind", 3509 3917 "_type": "string", … … 3514 3922 "_entries": [ 3515 3923 { 3516 "_value": { 3924 "_listeners": null, 3925 "_value": { 3926 "_listeners": null, 3517 3927 "_type": "number", 3518 3928 "_description": "1", … … 3524 3934 }, 3525 3935 { 3526 "_value": { 3936 "_listeners": null, 3937 "_value": { 3938 "_listeners": null, 3527 3939 "_type": "string", 3528 3940 "_description": "key", … … 3545 3957 "_description": "Map Iterator", 3546 3958 "_preview": { 3959 "_listeners": null, 3547 3960 "_type": "object", 3548 3961 "_subtype": "iterator", … … 3552 3965 "_properties": [ 3553 3966 { 3967 "_listeners": null, 3554 3968 "_name": "map", 3555 3969 "_type": "object", … … 3559 3973 }, 3560 3974 { 3975 "_listeners": null, 3561 3976 "_name": "kind", 3562 3977 "_type": "string", … … 3567 3982 "_entries": [ 3568 3983 { 3569 "_value": { 3984 "_listeners": null, 3985 "_value": { 3986 "_listeners": null, 3570 3987 "_type": "object", 3571 3988 "_subtype": "array", … … 3576 3993 "_properties": [ 3577 3994 { 3995 "_listeners": null, 3578 3996 "_name": "0", 3579 3997 "_type": "number", … … 3581 3999 }, 3582 4000 { 4001 "_listeners": null, 3583 4002 "_name": "1", 3584 4003 "_type": "number", … … 3590 4009 }, 3591 4010 { 3592 "_value": { 4011 "_listeners": null, 4012 "_value": { 4013 "_listeners": null, 3593 4014 "_type": "object", 3594 4015 "_subtype": "array", … … 3599 4020 "_properties": [ 3600 4021 { 4022 "_listeners": null, 3601 4023 "_name": "0", 3602 4024 "_type": "string", … … 3604 4026 }, 3605 4027 { 4028 "_listeners": null, 3606 4029 "_name": "1", 3607 4030 "_type": "string", … … 3624 4047 "_description": "Set Iterator", 3625 4048 "_preview": { 4049 "_listeners": null, 3626 4050 "_type": "object", 3627 4051 "_subtype": "iterator", … … 3631 4055 "_properties": [ 3632 4056 { 4057 "_listeners": null, 3633 4058 "_name": "set", 3634 4059 "_type": "object", … … 3638 4063 }, 3639 4064 { 4065 "_listeners": null, 3640 4066 "_name": "kind", 3641 4067 "_type": "string", … … 3646 4072 "_entries": [ 3647 4073 { 3648 "_value": { 4074 "_listeners": null, 4075 "_value": { 4076 "_listeners": null, 3649 4077 "_type": "number", 3650 4078 "_description": "0", … … 3656 4084 }, 3657 4085 { 3658 "_value": { 4086 "_listeners": null, 4087 "_value": { 4088 "_listeners": null, 3659 4089 "_type": "number", 3660 4090 "_description": "1", … … 3666 4096 }, 3667 4097 { 3668 "_value": { 4098 "_listeners": null, 4099 "_value": { 4100 "_listeners": null, 3669 4101 "_type": "number", 3670 4102 "_description": "2", … … 3676 4108 }, 3677 4109 { 3678 "_value": { 4110 "_listeners": null, 4111 "_value": { 4112 "_listeners": null, 3679 4113 "_type": "number", 3680 4114 "_description": "3", … … 3686 4120 }, 3687 4121 { 3688 "_value": { 4122 "_listeners": null, 4123 "_value": { 4124 "_listeners": null, 3689 4125 "_type": "number", 3690 4126 "_description": "4", … … 3707 4143 "_description": "Map Iterator", 3708 4144 "_preview": { 4145 "_listeners": null, 3709 4146 "_type": "object", 3710 4147 "_subtype": "iterator", … … 3714 4151 "_properties": [ 3715 4152 { 4153 "_listeners": null, 3716 4154 "_name": "map", 3717 4155 "_type": "object", … … 3721 4159 }, 3722 4160 { 4161 "_listeners": null, 3723 4162 "_name": "kind", 3724 4163 "_type": "string", … … 3729 4168 "_entries": [ 3730 4169 { 3731 "_value": { 4170 "_listeners": null, 4171 "_value": { 4172 "_listeners": null, 3732 4173 "_type": "object", 3733 4174 "_subtype": "array", … … 3738 4179 "_properties": [ 3739 4180 { 4181 "_listeners": null, 3740 4182 "_name": "0", 3741 4183 "_type": "number", … … 3743 4185 }, 3744 4186 { 4187 "_listeners": null, 3745 4188 "_name": "1", 3746 4189 "_type": "number", … … 3752 4195 }, 3753 4196 { 3754 "_value": { 4197 "_listeners": null, 4198 "_value": { 4199 "_listeners": null, 3755 4200 "_type": "object", 3756 4201 "_subtype": "array", … … 3761 4206 "_properties": [ 3762 4207 { 4208 "_listeners": null, 3763 4209 "_name": "0", 3764 4210 "_type": "string", … … 3766 4212 }, 3767 4213 { 4214 "_listeners": null, 3768 4215 "_name": "1", 3769 4216 "_type": "string", … … 3786 4233 "_description": "Array Iterator", 3787 4234 "_preview": { 4235 "_listeners": null, 3788 4236 "_type": "object", 3789 4237 "_subtype": "iterator", … … 3793 4241 "_properties": [ 3794 4242 { 4243 "_listeners": null, 3795 4244 "_name": "array", 3796 4245 "_type": "object", 3797 4246 "_subtype": "array", 3798 4247 "_valuePreview": { 4248 "_listeners": null, 3799 4249 "_type": "object", 3800 4250 "_subtype": "array", … … 3805 4255 "_properties": [ 3806 4256 { 4257 "_listeners": null, 3807 4258 "_name": "0", 3808 4259 "_type": "number", … … 3810 4261 }, 3811 4262 { 4263 "_listeners": null, 3812 4264 "_name": "1", 3813 4265 "_type": "string", … … 3820 4272 }, 3821 4273 { 4274 "_listeners": null, 3822 4275 "_name": "kind", 3823 4276 "_type": "string", … … 3828 4281 "_entries": [ 3829 4282 { 3830 "_value": { 4283 "_listeners": null, 4284 "_value": { 4285 "_listeners": null, 3831 4286 "_type": "number", 3832 4287 "_description": "1", … … 3838 4293 }, 3839 4294 { 3840 "_value": { 4295 "_listeners": null, 4296 "_value": { 4297 "_listeners": null, 3841 4298 "_type": "string", 3842 4299 "_description": "two", … … 3859 4316 "_description": "PropertyName Iterator", 3860 4317 "_preview": { 4318 "_listeners": null, 3861 4319 "_type": "object", 3862 4320 "_subtype": "iterator", … … 3866 4324 "_properties": [ 3867 4325 { 4326 "_listeners": null, 3868 4327 "_name": "object", 3869 4328 "_type": "object", 3870 4329 "_valuePreview": { 4330 "_listeners": null, 3871 4331 "_type": "object", 3872 4332 "_description": "Object", … … 3875 4335 "_properties": [ 3876 4336 { 4337 "_listeners": null, 3877 4338 "_name": "a", 3878 4339 "_type": "number", … … 3880 4341 }, 3881 4342 { 4343 "_listeners": null, 3882 4344 "_name": "b", 3883 4345 "_type": "number", … … 3885 4347 }, 3886 4348 { 4349 "_listeners": null, 3887 4350 "_name": "c", 3888 4351 "_type": "number", … … 3897 4360 "_entries": [ 3898 4361 { 3899 "_value": { 4362 "_listeners": null, 4363 "_value": { 4364 "_listeners": null, 3900 4365 "_type": "string", 3901 4366 "_description": "a", … … 3907 4372 }, 3908 4373 { 3909 "_value": { 4374 "_listeners": null, 4375 "_value": { 4376 "_listeners": null, 3910 4377 "_type": "string", 3911 4378 "_description": "b", … … 3917 4384 }, 3918 4385 { 3919 "_value": { 4386 "_listeners": null, 4387 "_value": { 4388 "_listeners": null, 3920 4389 "_type": "string", 3921 4390 "_description": "c", … … 3938 4407 "_description": "PropertyName Iterator", 3939 4408 "_preview": { 4409 "_listeners": null, 3940 4410 "_type": "object", 3941 4411 "_subtype": "iterator", … … 3945 4415 "_properties": [ 3946 4416 { 4417 "_listeners": null, 3947 4418 "_name": "object", 3948 4419 "_type": "object", … … 3954 4425 "_entries": [ 3955 4426 { 3956 "_value": { 4427 "_listeners": null, 4428 "_value": { 4429 "_listeners": null, 3957 4430 "_type": "string", 3958 4431 "_description": "0", … … 3964 4437 }, 3965 4438 { 3966 "_value": { 4439 "_listeners": null, 4440 "_value": { 4441 "_listeners": null, 3967 4442 "_type": "string", 3968 4443 "_description": "1", … … 3974 4449 }, 3975 4450 { 3976 "_value": { 4451 "_listeners": null, 4452 "_value": { 4453 "_listeners": null, 3977 4454 "_type": "string", 3978 4455 "_description": "2", … … 3984 4461 }, 3985 4462 { 3986 "_value": { 4463 "_listeners": null, 4464 "_value": { 4465 "_listeners": null, 3987 4466 "_type": "string", 3988 4467 "_description": "3", … … 3994 4473 }, 3995 4474 { 3996 "_value": { 4475 "_listeners": null, 4476 "_value": { 4477 "_listeners": null, 3997 4478 "_type": "string", 3998 4479 "_description": "4", … … 4014 4495 "_description": "Promise", 4015 4496 "_preview": { 4497 "_listeners": null, 4016 4498 "_type": "object", 4017 4499 "_description": "Promise", … … 4020 4502 "_properties": [ 4021 4503 { 4504 "_listeners": null, 4022 4505 "_name": "status", 4023 4506 "_type": "string", … … 4037 4520 "_description": "Promise", 4038 4521 "_preview": { 4522 "_listeners": null, 4039 4523 "_type": "object", 4040 4524 "_description": "Promise", … … 4043 4527 "_properties": [ 4044 4528 { 4529 "_listeners": null, 4045 4530 "_name": "status", 4046 4531 "_type": "string", … … 4049 4534 }, 4050 4535 { 4536 "_listeners": null, 4051 4537 "_name": "result", 4052 4538 "_type": "undefined", … … 4066 4552 "_description": "Promise", 4067 4553 "_preview": { 4554 "_listeners": null, 4068 4555 "_type": "object", 4069 4556 "_description": "Promise", … … 4072 4559 "_properties": [ 4073 4560 { 4561 "_listeners": null, 4074 4562 "_name": "status", 4075 4563 "_type": "string", … … 4078 4566 }, 4079 4567 { 4568 "_listeners": null, 4080 4569 "_name": "result", 4081 4570 "_type": "string", … … 4095 4584 "_description": "Promise", 4096 4585 "_preview": { 4586 "_listeners": null, 4097 4587 "_type": "object", 4098 4588 "_description": "Promise", … … 4101 4591 "_properties": [ 4102 4592 { 4593 "_listeners": null, 4103 4594 "_name": "status", 4104 4595 "_type": "string", … … 4107 4598 }, 4108 4599 { 4600 "_listeners": null, 4109 4601 "_name": "result", 4110 4602 "_type": "undefined", … … 4124 4616 "_description": "Promise", 4125 4617 "_preview": { 4618 "_listeners": null, 4126 4619 "_type": "object", 4127 4620 "_description": "Promise", … … 4130 4623 "_properties": [ 4131 4624 { 4625 "_listeners": null, 4132 4626 "_name": "status", 4133 4627 "_type": "string", … … 4136 4630 }, 4137 4631 { 4632 "_listeners": null, 4138 4633 "_name": "result", 4139 4634 "_type": "object", 4140 4635 "_valuePreview": { 4636 "_listeners": null, 4141 4637 "_type": "object", 4142 4638 "_description": "Object", … … 4145 4641 "_properties": [ 4146 4642 { 4643 "_listeners": null, 4147 4644 "_name": "result", 4148 4645 "_type": "number", … … 4206 4703 "_size": 1, 4207 4704 "_preview": { 4705 "_listeners": null, 4208 4706 "_type": "object", 4209 4707 "_subtype": "array", … … 4214 4712 "_properties": [ 4215 4713 { 4714 "_listeners": null, 4216 4715 "_name": "0", 4217 4716 "_type": "function", … … 4231 4730 "_description": "Object", 4232 4731 "_preview": { 4732 "_listeners": null, 4233 4733 "_type": "object", 4234 4734 "_description": "Object", … … 4247 4747 "_description": "Object", 4248 4748 "_preview": { 4749 "_listeners": null, 4249 4750 "_type": "object", 4250 4751 "_description": "Object", -
trunk/Source/WebInspectorUI/ChangeLog
r195303 r195305 1 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com> 2 3 Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1) 4 https://bugs.webkit.org/show_bug.cgi?id=152422 5 <rdar://problem/24038047> 6 7 Reviewed by Timothy Hatcher. 8 9 Slow addEventListener was the main cause of Console sluggishness[1]. 10 11 This patch changes: 12 addEventListener from O(n) to O(1) 13 removeEventListener from O(n) to O(1) 14 15 Now, addEventListener and removeEventListener take <1ms regardless of the 16 number of listeners attached. 17 18 removeEventListener(null, null, thisObject), a special case when all events 19 for thisObject are removed, was improved from O(n^2) to O(n). 20 21 * UserInterface/Base/LinkedList.js: Added. 22 (LinkedList): 23 (LinkedList.prototype.clear): 24 (LinkedList.prototype.get last): 25 (LinkedList.prototype.push): 26 (LinkedList.prototype.remove): 27 (LinkedList.prototype.forEach): 28 (LinkedList.prototype.toArray): 29 (LinkedList.prototype.toJSON): 30 (LinkedListNode): 31 LinkedList ensures O(1) time complexity for push and remove operations. 32 33 * UserInterface/Base/ListMultimap.js: Added. 34 (ListMultimap): 35 (ListMultimap.prototype.get size): 36 (ListMultimap.prototype.add): 37 (ListMultimap.prototype.delete): 38 (ListMultimap.prototype.deleteAll): 39 (ListMultimap.prototype.has): 40 (ListMultimap.prototype.clear): 41 (ListMultimap.prototype.forEach): 42 (ListMultimap.prototype.toArray): 43 (ListMultimap.prototype.toJSON): 44 ListMultimap unsures O(1) time complexity for add, has and delete operations. 45 ListMultimap preserves insertion order by using a LinkedList. 46 47 * UserInterface/Base/Object.js: 48 (WebInspector.Object): 49 (WebInspector.Object.addEventListener): 50 (WebInspector.Object.removeEventListener): 51 (WebInspector.Object.hasEventListeners): 52 (WebInspector.Object.retainedObjectsWithPrototype): 53 (WebInspector.Object.prototype.dispatchEventToListeners): 54 Replace this._listeners[eventType] from array of objects to ListMultimap. 55 56 * UserInterface/Main.html: 57 * UserInterface/Test.html: 58 * UserInterface/TestStub.html: 59 1 60 2016-01-19 Matt Baker <mattbaker@apple.com> 2 61 -
trunk/Source/WebInspectorUI/UserInterface/Base/Object.js
r194356 r195305 26 26 WebInspector.Object = class WebInspectorObject 27 27 { 28 constructor() 29 { 30 this._listeners = null; 31 } 32 28 33 // Static 29 34 … … 41 46 42 47 if (!this._listeners) 43 this._listeners = {}; 44 45 var listeners = this._listeners[eventType]; 46 if (!listeners) 47 listeners = this._listeners[eventType] = []; 48 49 // Prevent registering multiple times. 50 for (var i = 0; i < listeners.length; ++i) { 51 if (listeners[i].listener === listener && listeners[i].thisObject === thisObject) 52 return; 53 } 54 55 listeners.push({thisObject, listener}); 48 this._listeners = new Map(); 49 50 let listenersTable = this._listeners.get(eventType); 51 if (!listenersTable) { 52 listenersTable = new ListMultimap(); 53 this._listeners.set(eventType, listenersTable); 54 } 55 56 listenersTable.add(thisObject, listener); 56 57 } 57 58 … … 76 77 return; 77 78 78 if (!eventType) { 79 for (eventType in this._listeners) 80 this.removeEventListener(eventType, listener, thisObject); 81 return; 82 } 83 84 var listeners = this._listeners[eventType]; 85 if (!listeners) 86 return; 87 88 for (var i = listeners.length - 1; i >= 0; --i) { 89 if (listener && listeners[i].listener === listener && listeners[i].thisObject === thisObject) 90 listeners.splice(i, 1); 91 else if (!listener && thisObject && listeners[i].thisObject === thisObject) 92 listeners.splice(i, 1); 93 } 94 95 if (!listeners.length) 96 delete this._listeners[eventType]; 97 98 if (!Object.keys(this._listeners).length) 99 delete this._listeners; 100 } 101 79 if (thisObject && !eventType) { 80 this._listeners.forEach(function(listenersTable) { 81 let listenerPairs = listenersTable.toArray(); 82 for (let i = 0, length = listenerPairs.length; i < length; ++i) { 83 let existingThisObject = listenerPairs[i][0]; 84 if (existingThisObject === thisObject) 85 listenersTable.deleteAll(existingThisObject); 86 } 87 }); 88 89 return; 90 } 91 92 let listenersTable = this._listeners.get(eventType); 93 if (!listenersTable || listenersTable.size === 0) 94 return; 95 96 let didDelete = listenersTable.delete(thisObject, listener); 97 console.assert(didDelete, "removeEventListener cannot remove " + eventType.toString() + " because it doesn't exist."); 98 } 99 100 // Only used by tests. 102 101 static hasEventListeners(eventType) 103 102 { 104 if (!this._listeners || !this._listeners[eventType])103 if (!this._listeners) 105 104 return false; 106 return true; 105 106 let listenersTable = this._listeners.get(eventType); 107 return listenersTable && listenersTable.size > 0; 107 108 } 108 109 … … 111 112 { 112 113 let results = new Set; 113 for (let eventType in this._listeners) { 114 let recordsForEvent = this._listeners[eventType]; 115 for (let listener of recordsForEvent) { 116 if (listener.thisObject instanceof proto) 117 results.add(listener.thisObject); 118 } 119 } 114 115 if (this._listeners) { 116 this._listeners.forEach(function(listenersTable, eventType) { 117 listenersTable.forEach(function(pair) { 118 let thisObject = pair[0]; 119 if (thisObject instanceof proto) 120 results.add(thisObject); 121 }); 122 }); 123 } 124 120 125 return results; 121 126 } … … 131 136 dispatchEventToListeners(eventType, eventData) 132 137 { 133 varevent = new WebInspector.Event(this, eventType, eventData);138 let event = new WebInspector.Event(this, eventType, eventData); 134 139 135 140 function dispatch(object) 136 141 { 137 if (!object || !object. hasOwnProperty("_listeners")|| event._stoppedPropagation)142 if (!object || !object._listeners || event._stoppedPropagation) 138 143 return; 139 144 140 let listenersForThisEvent = object._listeners[eventType];141 if (!listenersForThisEvent)145 if (!(object._listeners instanceof Map)) { 146 console.error("object._listeners should be a Map but it isn't.\n`object` is most likely a WebInspector.EventListenerSet."); 142 147 return; 148 } 149 150 let listenersTable = object._listeners.get(eventType); 151 if (!listenersTable) 152 return; 143 153 144 154 // Make a copy with slice so mutations during the loop doesn't affect us. 145 l istenersForThisEvent = listenersForThisEvent.slice(0);155 let listeners = listenersTable.toArray(); 146 156 147 157 // Iterate over the listeners and call them. Stop if stopPropagation is called. 148 for (var i = 0; i < listenersForThisEvent.length; ++i) { 149 listenersForThisEvent[i].listener.call(listenersForThisEvent[i].thisObject, event); 158 for (let i = 0, length = listeners.length; i < length; ++i) { 159 let [thisObject, listener] = listeners[i]; 160 listener.call(thisObject, event); 150 161 if (event._stoppedPropagation) 151 162 break; … … 160 171 161 172 // Dispatch to listeners on all constructors up the prototype chain, including the immediate constructor. 162 varconstructor = this.constructor;173 let constructor = this.constructor; 163 174 while (constructor) { 164 175 dispatch(constructor); -
trunk/Source/WebInspectorUI/UserInterface/Main.html
r195303 r195305 217 217 <script src="Protocol/InspectorFrontendHostStub.js"></script> 218 218 <script src="Base/Platform.js"></script> 219 <script src="Base/LinkedList.js"></script> 220 <script src="Base/ListMultimap.js"></script> 219 221 <script src="Base/Object.js"></script> 220 222 -
trunk/Source/WebInspectorUI/UserInterface/Test.html
r193870 r195305 37 37 38 38 <script src="Base/WebInspector.js"></script> 39 <script src="Base/LinkedList.js"></script> 40 <script src="Base/ListMultimap.js"></script> 39 41 <script src="Base/Object.js"></script> 40 42 -
trunk/Source/WebInspectorUI/UserInterface/TestStub.html
r188965 r195305 31 31 --> 32 32 <script src="Base/WebInspector.js"></script> 33 <script src="Base/LinkedList.js"></script> 34 <script src="Base/ListMultimap.js"></script> 33 35 <script src="Base/Object.js"></script> 34 36
Note:
See TracChangeset
for help on using the changeset viewer.