Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug Render Tree (for Ember Inspector) #18372

Merged
merged 2 commits into from Sep 16, 2019

Conversation

@chancancode
Copy link
Member

commented Sep 10, 2019

Introduce debug render tree

  1. Before loading Ember, set ENV._DEBUG_RENDER_TREE = true;

    This controls whether to perform extra bookkeeping needed to make the captureRenderTree API work.

    This has to be set before the ember JavaScript code is evaluated.

    This is usually done by setting one of these...

    window.EmberENV = { _DEBUG_RENDER_TREE: true };
    
    window.ENV = { _DEBUG_RENDER_TREE: true };
    

    ...before the "vendor" <script> tag in index.html.

    Setting the flag after Ember is already loaded will not work correctly. It may appear to work somewhat, but fundamentally broken.

    This is not intended to be set directly. Ember Inspector will enable the flag on behalf of the user as needed.

    This flag is always on in development mode.

    The flag is off by default in production mode, due to the cost associated with the the bookkeeping work.

    The expected flow is that Ember Inspector will ask the user to refresh the page after enabling the feature. It could also offer a feature where the user add some domains to the "always on" list. In either case, Ember Inspector will inject the code on the page to set the flag if needed.

  2. With the flag on, Ember._captureRenderTree() is available.

    It takes the application instance as an argument and returns an array of CapturedRenderNode:

    interface CapturedRenderNode {
      type: 'outlet' | 'engine' | 'route-template' | 'component';
      name: string;
      args: {
        positional: unknown[];
        named: Dict<unknown>;
      };
      instance: unknown;
      bounds: Option<{
        parentElement: Simple.Element;
        firstNode: Simple.Node;
        lastNode: Simple.Node;
      }>;
      children: CapturedRenderNode[];
    }
@chancancode chancancode changed the title Most of the way through the baseline tree stuff Debug Render Tree (for Ember Inspector) Sep 10, 2019
@wycats wycats force-pushed the render-tree branch from ab035e4 to b7d19c8 Sep 12, 2019
@chancancode chancancode force-pushed the render-tree branch 3 times, most recently from b11090b to f62d281 Sep 13, 2019
@chancancode chancancode marked this pull request as ready for review Sep 14, 2019
@chancancode chancancode force-pushed the render-tree branch 3 times, most recently from 7435de8 to 1ab8536 Sep 14, 2019
@chancancode chancancode requested review from rwjblue, rwwagner90 and wycats Sep 14, 2019
@chancancode chancancode force-pushed the render-tree branch 3 times, most recently from 6f8b85c to 33b0e6b Sep 14, 2019
@chancancode chancancode force-pushed the render-tree branch from 7c73f17 to b422db1 Sep 16, 2019
@rwjblue

This comment was marked as resolved.

Copy link
Member

commented Sep 16, 2019

Looks like CI is failing on IE11 (due to Symbol.iterator?):

not ok 18 IE 11.0 - [143 ms] - Application test: debug render tree:  routes
442    ---
443        actual: >
444            null
445        stack: >
446            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
447               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
448               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
449               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
450               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
451               at _callee$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2334:19)
452               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
453               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
454               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
455               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
456               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
457        message: >
458            Promise rejected during " routes": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
459        negative: >
460            false
461        browser log: |
462    ...
463not ok 19 IE 11.0 - [122 ms] - Application test: debug render tree:  named outlets
464    ---
465        actual: >
466            null
467        stack: >
468            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
469               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
470               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
471               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
472               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
473               at _callee2$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2531:19)
474               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
475               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
476               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
477               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
478               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
479        message: >
480            Promise rejected during " named outlets": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
481        negative: >
482            false
483        browser log: |
484    ...
485not ok 20 IE 11.0 - [94 ms] - Application test: debug render tree:  {{mount}}
486    ---
487        actual: >
488            null
489        stack: >
490            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
491               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
492               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
493               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
494               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
495               at _callee3$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2692:19)
496               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
497               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
498               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
499               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
500               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
501        message: >
502            Promise rejected during " {{mount}}": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
503        negative: >
504            false
505        browser log: |
506    ...
507not ok 21 IE 11.0 - [54 ms] - Application test: debug render tree:  routable engine
508    ---
509        actual: >
510            null
511        stack: >
512            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
513               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
514               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
515               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
516               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
517               at _callee4$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3255:19)
518               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
519               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
520               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
521               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
522               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
523        message: >
524            Promise rejected during " routable engine": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
525        negative: >
526            false
527        browser log: |
528    ...
529not ok 22 IE 11.0 - [55 ms] - Application test: debug render tree:  template-only components
530    ---
531        actual: >
532            null
533        stack: >
534            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
535               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
536               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
537               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
538               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
539               at _callee5$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3451:19)
540               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
541               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
542               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
543               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
544               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
545        message: >
546            Promise rejected during " template-only components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
547        negative: >
548            false
549        browser log: |
550    ...
551not ok 23 IE 11.0 - [67 ms] - Application test: debug render tree: templateOnlyComponent()
552    ---
553        actual: >
554            null
555        stack: >
556            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
557               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
558               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
559               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
560               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
561               at _callee6$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3545:19)
562               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
563               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
564               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
565               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
566               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
567        message: >
568            Promise rejected during "templateOnlyComponent()": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
569        negative: >
570            false
571        browser log: |
572    ...
573not ok 24 IE 11.0 - [40 ms] - Application test: debug render tree: templateOnlyComponent() + setComponentTemplate()
574    ---
575        actual: >
576            null
577        stack: >
578            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
579               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
580               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
581               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
582               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
583               at _callee7$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3638:19)
584               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
585               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
586               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
587               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
588               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
589        message: >
590            Promise rejected during "templateOnlyComponent() + setComponentTemplate()": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
591        negative: >
592            false
593        browser log: |
594    ...
595not ok 25 IE 11.0 - [45 ms] - Application test: debug render tree:  classic components
596    ---
597        actual: >
598            null
599        stack: >
600            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
601               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
602               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
603               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
604               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
605               at _callee8$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3732:19)
606               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
607               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
608               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
609               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
610               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
611        message: >
612            Promise rejected during " classic components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
613        negative: >
614            false
615        browser log: |
616    ...
617not ok 26 IE 11.0 - [57 ms] - Application test: debug render tree:  custom components
618    ---
619        actual: >
620            null
621        stack: >
622            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
623               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
624               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
625               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
626               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
627               at _callee9$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3847:19)
628               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
629               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
630               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
631               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
632               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
633        message: >
634            Promise rejected during " custom components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
635        negative: >
636            false
637        browser log: |
638    ...
639not ok 27 IE 11.0 - [61 ms] - Application test: debug render tree:  <Input> components
640    ---
641        actual: >
642            null
643        stack: >
644            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
645               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
646               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
647               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
648               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
649               at _callee10$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:3945:19)
650               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
651               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
652               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
653               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
654               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
655        message: >
656            Promise rejected during " <Input> components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
657        negative: >
658            false
659        browser log: |
660    ...
661not ok 28 IE 11.0 - [62 ms] - Application test: debug render tree:  <Textarea> components
662    ---
663        actual: >
664            null
665        stack: >
666            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
667               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
668               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
669               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
670               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
671               at _callee11$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4095:19)
672               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
673               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
674               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
675               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
676               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
677        message: >
678            Promise rejected during " <Textarea> components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
679        negative: >
680            false
681        browser log: |
682    ...
683not ok 29 IE 11.0 - [58 ms] - Application test: debug render tree:  <LinkTo> components
684    ---
685        actual: >
686            null
687        stack: >
688            TypeError: Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
689               at captureRefs (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6714:79)
690               at capture (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:6669:7)
691               at captureRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember.js:38157:5)
692               at assertRenderTree (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4319:9)
693               at _callee12$ (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:4193:19)
694               at tryCatch (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1478:8)
695               at invoke (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1712:10)
696               at prototype[method] (http://127.0.0.1:7774/226699702670/dist/tests/polyfill.js:1530:10)
697               at asyncGeneratorStep (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2247:86)
698               at _next (http://127.0.0.1:7774/226699702670/dist/tests/ember-tests.js:2249:196)
699        message: >
700            Promise rejected during " <LinkTo> components": Object doesn't support property or method 'Symbol(Symbol.iterator)_3.7367c5xbrlh'
701        negative: >
702            false
703        browser log: |
704
@rwwagner90

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

@chancancode is it better to use window.EmberENV or window.ENV?

chancancode and others added 2 commits Sep 6, 2019
1. Before loading Ember, set `ENV._DEBUG_RENDER_TREE = true;`

   This controls whether to perform extra bookkeeping needed to make
   the `captureRenderTree` API work.

   This has to be set before the ember JavaScript code is evaluated.
   This is usually done by setting one of these...

   ```
   window.EmberENV = { _DEBUG_RENDER_TREE: true };
   ```

   ```
   window.ENV = { _DEBUG_RENDER_TREE: true };
   ```

   ...before the "vendor" `<script>` tag in `index.html`.

   Setting the flag after Ember is already loaded will not work
   correctly. It may appear to work somewhat, but fundamentally broken.

   This is not intended to be set directly. Ember Inspector will enable
   the flag on behalf of the user as needed.

   This flag is always on in development mode.

   The flag is off by default in production mode, due to the cost
   associated with the the bookkeeping work.

   The expected flow is that Ember Inspector will ask the user to
   refresh the page after enabling the feature. It could also offer a
   feature where the user add some domains to the "always on" list. In
   either case, Ember Inspector will inject the code on the page to set
   the flag if needed.

2. With the flag on, `Ember._captureRenderTree()` is available.

   It takes the *application instance* as an argument and returns an
   array of `CapturedRenderNode`:

   ```typescript
   interface CapturedRenderNode {
     type: 'outlet' | 'engine' | 'route-template' | 'component';
     name: string;
     args: {
       positional: unknown[];
       named: Dict<unknown>;
     };
     instance: unknown;
     bounds: Option<{
       parentElement: Simple.Element;
       firstNode: Simple.Node;
       lastNode: Simple.Node;
     }>;
     children: CapturedRenderNode[];
   }
   ```

Co-authored-by: Yehuda Katz <wycats@gmail.com>
@chancancode chancancode force-pushed the render-tree branch from b422db1 to d7d942e Sep 16, 2019
@chancancode

This comment has been minimized.

Copy link
Member Author

commented Sep 16, 2019

@rwwagner90 it is used like this: https://github.com/emberjs/ember.js/blob/master/packages/@ember/-internals/environment/lib/env.ts#L206

Do you have a way to inject the script just before the vendor script tag? If so, you should probably try to detect if the app has already tried to set either of those and then go with it.

If you have to inject at the very beginning of the page.. maybe you want to set window.ENV = window.EmberENV = {}? That way if the app tries to add more things to either, it would still work, as long as they check first and not override it with a new object.

@rwjblue

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

We should only use window.EmberENV (usage of window.ENV is discouraged, and only exists as a form of legacy support). I’ll do a separate PR to add a deprecation if we find and use window.ENV.

*/
export default function captureRenderTree(app: Owner): CapturedRenderNode[] {
let env = expect(
app.lookup<Environment>('service:-glimmer-environment'),

This comment has been minimized.

Copy link
@rwjblue

rwjblue Sep 16, 2019

Member

Do we have stripping for this in Ember's own packages?

packages/ember/index.js Show resolved Hide resolved
@rwjblue rwjblue merged commit ee8a894 into master Sep 16, 2019
2 checks passed
2 checks passed
WIP Ready for review
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@rwjblue rwjblue deleted the render-tree branch Sep 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.