ember-source 7.1.0-alpha.4 → 7.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-metadata.json +3 -3
- package/dist/dev/packages/@ember/-internals/container/index.js +4 -401
- package/dist/dev/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/environment/index.js +3 -161
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +14 -15
- package/dist/dev/packages/@ember/-internals/meta/lib/meta.js +0 -1
- package/dist/dev/packages/@ember/-internals/metal/index.js +18 -9
- package/dist/dev/packages/@ember/-internals/routing/index.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -12
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -10
- package/dist/dev/packages/@ember/-internals/string/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/utils/index.js +8 -3
- package/dist/dev/packages/@ember/-internals/views/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +3 -12
- package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -11
- package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +2 -19
- package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +1 -1
- package/dist/dev/packages/@ember/application/index.js +5 -28
- package/dist/dev/packages/@ember/application/instance.js +3 -22
- package/dist/dev/packages/@ember/application/namespace.js +4 -11
- package/dist/dev/packages/@ember/array/index.js +7 -15
- package/dist/dev/packages/@ember/array/proxy.js +10 -14
- package/dist/dev/packages/@ember/canary-features/index.js +1 -1
- package/dist/dev/packages/@ember/component/helper.js +1 -14
- package/dist/dev/packages/@ember/component/index.js +1356 -17
- package/dist/dev/packages/@ember/component/template-only.js +1 -9
- package/dist/dev/packages/@ember/controller/index.js +3 -19
- package/dist/dev/packages/@ember/debug/container-debug-adapter.js +0 -19
- package/dist/dev/packages/@ember/debug/data-adapter.js +4 -11
- package/dist/dev/packages/@ember/debug/index.js +1 -1
- package/dist/dev/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/dev/packages/@ember/engine/index.js +3 -31
- package/dist/dev/packages/@ember/engine/instance.js +3 -8
- package/dist/dev/packages/@ember/helper/index.js +159 -21
- package/dist/dev/packages/@ember/instrumentation/index.js +1 -1
- package/dist/dev/packages/@ember/modifier/index.js +2 -16
- package/dist/dev/packages/@ember/modifier/on.js +1 -9
- package/dist/dev/packages/@ember/object/-internals.js +3 -11
- package/dist/dev/packages/@ember/object/compat.js +3 -10
- package/dist/dev/packages/@ember/object/computed.js +2 -12
- package/dist/dev/packages/@ember/object/core.js +10 -18
- package/dist/dev/packages/@ember/object/evented.js +2 -12
- package/dist/dev/packages/@ember/object/events.js +1 -11
- package/dist/dev/packages/@ember/object/index.js +10 -14
- package/dist/dev/packages/@ember/object/internals.js +1 -1
- package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +6 -23
- package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -12
- package/dist/dev/packages/@ember/object/mixin.js +7 -10
- package/dist/dev/packages/@ember/object/observable.js +8 -12
- package/dist/dev/packages/@ember/object/observers.js +1 -11
- package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -13
- package/dist/dev/packages/@ember/object/proxy.js +0 -7
- package/dist/dev/packages/@ember/reactive/collections.js +591 -1
- package/dist/dev/packages/@ember/renderer/index.js +1 -14
- package/dist/dev/packages/@ember/routing/-internals.js +1 -10
- package/dist/dev/packages/@ember/routing/index.js +614 -14
- package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -11
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +7 -17
- package/dist/dev/packages/@ember/routing/lib/utils.js +2 -11
- package/dist/dev/packages/@ember/routing/route.js +13 -24
- package/dist/dev/packages/@ember/routing/router-service.js +9 -18
- package/dist/dev/packages/@ember/routing/router.js +5 -21
- package/dist/dev/packages/@ember/runloop/index.js +1 -10
- package/dist/dev/packages/@ember/service/index.js +1 -11
- package/dist/dev/packages/@ember/template/index.js +1 -14
- package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +12 -15
- package/dist/dev/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +1 -3
- package/dist/dev/packages/@ember/template-compiler/lib/template.js +3 -11
- package/dist/dev/packages/@ember/template-factory/index.js +1 -8
- package/dist/dev/packages/@ember/utils/lib/compare.js +0 -7
- package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -12
- package/dist/dev/packages/@glimmer/destroyable/index.js +1 -1
- package/dist/dev/packages/@glimmer/manager/index.js +5 -315
- package/dist/dev/packages/@glimmer/node/index.js +3 -11
- package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -7
- package/dist/dev/packages/@glimmer/program/index.js +194 -3
- package/dist/dev/packages/@glimmer/reference/index.js +4 -5
- package/dist/dev/packages/@glimmer/runtime/index.js +15 -10
- package/dist/dev/packages/@glimmer/tracking/index.js +2 -11
- package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -11
- package/dist/dev/packages/@glimmer/util/index.js +1 -2
- package/dist/dev/packages/@glimmer/validator/index.js +4 -1253
- package/dist/dev/packages/@glimmer/vm/index.js +1 -1
- package/dist/dev/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/ember-template-compiler/index.js +7 -7
- package/dist/dev/packages/shared-chunks/{alias-CSC0WIbj.js → alias-ZcMQckQV.js} +8 -4
- package/dist/dev/packages/shared-chunks/api-BAmlf_CN.js +310 -0
- package/dist/dev/packages/shared-chunks/{api-BQMslHhq.js → api-BawZUDYD.js} +5 -6
- package/dist/dev/packages/shared-chunks/{args-proxy-DgXMc9b5.js → args-proxy-BNLuRFlO.js} +2 -4
- package/dist/dev/packages/shared-chunks/{array-D8PfjQHi.js → array-Bh_kUjzy.js} +2 -1
- package/dist/dev/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/dev/packages/shared-chunks/cache-B7dqAS38.js +596 -0
- package/dist/dev/packages/shared-chunks/{capabilities-O_xc7Yqk.js → capabilities-CZkuOqqC.js} +0 -5
- package/dist/dev/packages/shared-chunks/chain-tags-D6tuFUj_.js +190 -0
- package/dist/dev/packages/shared-chunks/{collections-D_nY_0UJ.js → collections-DPkjqeA3.js} +0 -1
- package/dist/dev/packages/shared-chunks/{compiler-D1leQ3Gl.js → compiler-QUSl_urU.js} +7043 -235
- package/dist/dev/packages/shared-chunks/computed-CJnghmXC.js +980 -0
- package/dist/dev/packages/shared-chunks/container-BzzHmCNj.js +404 -0
- package/dist/dev/packages/shared-chunks/curly-BBzF_bI8.js +617 -0
- package/dist/dev/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/dev/packages/shared-chunks/{debug-to-string-CFb7h0lY.js → debug-to-string-C6LsA_qz.js} +1 -2
- package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
- package/dist/dev/packages/shared-chunks/element-DQJOvSlQ.js +109 -0
- package/dist/dev/packages/shared-chunks/element-builder--iTIJyCB.js +812 -0
- package/dist/dev/packages/shared-chunks/env-g-kaAFLN.js +161 -0
- package/dist/dev/packages/shared-chunks/events-6aFVjD4k.js +180 -0
- package/dist/dev/packages/shared-chunks/get-D5b5QlqE.js +138 -0
- package/dist/dev/packages/shared-chunks/get-debug-name-CSniHBsn.js +45 -0
- package/dist/dev/packages/shared-chunks/get_properties-CIm8IAtP.js +55 -0
- package/dist/dev/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/dev/packages/shared-chunks/hash-BRRFQJ99.js +192 -0
- package/dist/dev/packages/shared-chunks/helper-Do7NCZHI.js +314 -0
- package/dist/dev/packages/shared-chunks/index-CwnQYqK5.js +2500 -0
- package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-CyZiGiEI.js} +28 -29
- package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/dev/packages/shared-chunks/injected_property-B4T-FzZZ.js +70 -0
- package/dist/dev/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/dev/packages/shared-chunks/internal-CAL-jHZt.js +140 -0
- package/dist/dev/packages/shared-chunks/internal-helper-Ez7zbEIa.js +7 -0
- package/dist/dev/packages/shared-chunks/{neq-DujMPv1k.js → invoke-B8M5fQQS.js} +4 -32
- package/dist/{prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js → dev/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/dev/packages/shared-chunks/libraries-CHBwbR72.js +79 -0
- package/dist/dev/packages/shared-chunks/mandatory-setter-BpbAMTzV.js +107 -0
- package/dist/dev/packages/shared-chunks/meta-BmRXesrk.js +46 -0
- package/dist/{prod/packages/shared-chunks/name-C68GLLO3.js → dev/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/dev/packages/shared-chunks/{namespace_search-uT8odThF.js → namespace_search-BfvzEQzN.js} +1 -2
- package/dist/dev/packages/shared-chunks/normalize-CKySQVU7.js +84 -0
- package/dist/dev/packages/shared-chunks/observers-C2DurkLG.js +199 -0
- package/dist/dev/packages/shared-chunks/on-BueSMv9L.js +253 -0
- package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/dev/packages/shared-chunks/or-O0eJQ4K-.js +118 -0
- package/dist/{prod/packages/shared-chunks/program-B7SJZ5NF.js → dev/packages/shared-chunks/program-DzAfcWFj.js} +1 -1
- package/dist/{prod/packages/shared-chunks/program-context-DFiwaPMR.js → dev/packages/shared-chunks/program-context-CadjldRr.js} +4 -3
- package/dist/dev/packages/shared-chunks/property_get-CIBS9umw.js +139 -0
- package/dist/dev/packages/shared-chunks/{property_set-DaoZXGM5.js → property_set-D3PKyisF.js} +4 -2
- package/dist/dev/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/dev/packages/shared-chunks/{reference-C3TKDRnP.js → reference-BoPB2LfI.js} +3 -4
- package/dist/{prod/packages/shared-chunks/registers-ylirb0dq.js → dev/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{prod/packages/shared-chunks/rehydrate-builder-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DCyIgnCR.js} +7 -4
- package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-CpKaO-BO.js} +512 -16
- package/dist/{prod/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → dev/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.js → dev/packages/shared-chunks/serialize-builder-DxgGRvH_.js} +2 -7
- package/dist/dev/packages/shared-chunks/set_properties-BghuuGJx.js +48 -0
- package/dist/dev/packages/shared-chunks/{setup-registry-DxchCIL2.js → setup-registry-BC5VMvei.js} +34 -14
- package/dist/dev/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/dev/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/dev/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/dev/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/dev/packages/shared-chunks/{template-kM-7TTcc.js → template-R_5UMHhb.js} +1 -1
- package/dist/dev/packages/shared-chunks/template-only-BqOt8bDl.js +78 -0
- package/dist/dev/packages/shared-chunks/textarea-WSlUEr0y.js +468 -0
- package/dist/dev/packages/shared-chunks/tracked-CKE4wnE6.js +148 -0
- package/dist/dev/packages/shared-chunks/tracked-data-CGnA4ytZ.js +31 -0
- package/dist/dev/packages/shared-chunks/transform-resolutions-h1ik8gqW.js +645 -0
- package/dist/dev/packages/shared-chunks/unique-id-CgmHQiwi.js +32 -0
- package/dist/{prod/packages/shared-chunks/on-CersD7PL.js → dev/packages/shared-chunks/untouchable-this-B3DVwpHS.js} +215 -1397
- package/dist/dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/dist/prod/packages/@ember/-internals/container/index.js +4 -315
- package/dist/prod/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/environment/index.js +3 -158
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +14 -13
- package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +0 -3
- package/dist/prod/packages/@ember/-internals/metal/index.js +18 -13
- package/dist/prod/packages/@ember/-internals/routing/index.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +9 -10
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +2 -6
- package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
- package/dist/prod/packages/@ember/-internals/utils/index.js +32 -30
- package/dist/prod/packages/@ember/-internals/views/index.js +0 -1
- package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -2
- package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -6
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -7
- package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -2
- package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +2 -15
- package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +0 -2
- package/dist/prod/packages/@ember/application/index.js +5 -24
- package/dist/prod/packages/@ember/application/instance.js +5 -18
- package/dist/prod/packages/@ember/application/namespace.js +4 -8
- package/dist/prod/packages/@ember/array/index.js +7 -12
- package/dist/prod/packages/@ember/array/proxy.js +9 -10
- package/dist/prod/packages/@ember/canary-features/index.js +1 -1
- package/dist/prod/packages/@ember/component/helper.js +1 -12
- package/dist/prod/packages/@ember/component/index.js +1291 -15
- package/dist/prod/packages/@ember/component/template-only.js +1 -6
- package/dist/prod/packages/@ember/controller/index.js +3 -16
- package/dist/prod/packages/@ember/debug/container-debug-adapter.js +1 -15
- package/dist/prod/packages/@ember/debug/data-adapter.js +5 -7
- package/dist/prod/packages/@ember/debug/index.js +1 -1
- package/dist/prod/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/prod/packages/@ember/engine/index.js +3 -27
- package/dist/prod/packages/@ember/engine/instance.js +3 -9
- package/dist/prod/packages/@ember/helper/index.js +159 -19
- package/dist/prod/packages/@ember/instrumentation/index.js +1 -1
- package/dist/prod/packages/@ember/modifier/index.js +2 -14
- package/dist/prod/packages/@ember/modifier/on.js +1 -6
- package/dist/prod/packages/@ember/object/-internals.js +2 -6
- package/dist/prod/packages/@ember/object/compat.js +3 -7
- package/dist/prod/packages/@ember/object/computed.js +2 -8
- package/dist/prod/packages/@ember/object/core.js +8 -15
- package/dist/prod/packages/@ember/object/evented.js +2 -7
- package/dist/prod/packages/@ember/object/events.js +1 -6
- package/dist/prod/packages/@ember/object/index.js +10 -12
- package/dist/prod/packages/@ember/object/internals.js +2 -6
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +5 -20
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -9
- package/dist/prod/packages/@ember/object/mixin.js +6 -9
- package/dist/prod/packages/@ember/object/observable.js +7 -9
- package/dist/prod/packages/@ember/object/observers.js +1 -6
- package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -9
- package/dist/prod/packages/@ember/object/proxy.js +0 -7
- package/dist/prod/packages/@ember/reactive/collections.js +591 -1
- package/dist/prod/packages/@ember/renderer/index.js +1 -12
- package/dist/prod/packages/@ember/routing/history-location.js +0 -1
- package/dist/prod/packages/@ember/routing/index.js +580 -12
- package/dist/prod/packages/@ember/routing/lib/dsl.js +0 -2
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -6
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -14
- package/dist/prod/packages/@ember/routing/lib/utils.js +1 -6
- package/dist/prod/packages/@ember/routing/none-location.js +0 -1
- package/dist/prod/packages/@ember/routing/route.js +12 -22
- package/dist/prod/packages/@ember/routing/router-service.js +6 -15
- package/dist/prod/packages/@ember/routing/router.js +4 -17
- package/dist/prod/packages/@ember/runloop/index.js +1 -6
- package/dist/prod/packages/@ember/service/index.js +1 -7
- package/dist/prod/packages/@ember/template/index.js +1 -12
- package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +12 -14
- package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +126 -4
- package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -7
- package/dist/prod/packages/@ember/template-factory/index.js +1 -5
- package/dist/prod/packages/@ember/utils/lib/compare.js +0 -8
- package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -7
- package/dist/prod/packages/@glimmer/manager/index.js +4 -292
- package/dist/prod/packages/@glimmer/node/index.js +3 -8
- package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -5
- package/dist/prod/packages/@glimmer/program/index.js +194 -3
- package/dist/prod/packages/@glimmer/reference/index.js +4 -4
- package/dist/prod/packages/@glimmer/runtime/index.js +14 -8
- package/dist/prod/packages/@glimmer/tracking/index.js +2 -7
- package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -6
- package/dist/prod/packages/@glimmer/util/index.js +2 -2
- package/dist/prod/packages/@glimmer/validator/index.js +5 -1016
- package/dist/prod/packages/@glimmer/vm/index.js +1 -1
- package/dist/prod/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/ember-template-compiler/index.js +4 -7
- package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-DBW_V5vD.js} +7 -6
- package/dist/prod/packages/shared-chunks/api-CM1trl_4.js +289 -0
- package/dist/prod/packages/shared-chunks/{api-B5UrgITK.js → api-zh_k31vb.js} +4 -5
- package/dist/prod/packages/shared-chunks/{args-proxy-Dl0A0YWI.js → args-proxy-BDXbXCF9.js} +2 -2
- package/dist/prod/packages/shared-chunks/{array-kVQfzrQn.js → array-D6Couewv.js} +2 -3
- package/dist/prod/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/prod/packages/shared-chunks/cache-BIlOoPA7.js +371 -0
- package/dist/prod/packages/shared-chunks/{capabilities-DXA-L0iT.js → capabilities-_5e35539.js} +0 -3
- package/dist/prod/packages/shared-chunks/chain-tags-C9rFtQ_x.js +178 -0
- package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-c4yUVrl_.js} +7044 -193
- package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-DjCIU_ht.js} +108 -239
- package/dist/prod/packages/shared-chunks/container-BYOnjnwz.js +315 -0
- package/dist/prod/packages/shared-chunks/curly-ZzX43b50.js +545 -0
- package/dist/prod/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/prod/packages/shared-chunks/debug-render-tree-CF5O4-WI.js +2049 -0
- package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-9ikVwsjY.js} +0 -1
- package/dist/prod/packages/shared-chunks/element-DUOVW5Ho.js +100 -0
- package/dist/prod/packages/shared-chunks/{element-builder-CzXb9l1W.js → element-builder-CnlTPNyw.js} +109 -88
- package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
- package/dist/prod/packages/shared-chunks/events-DYrYz3V8.js +174 -0
- package/dist/prod/packages/shared-chunks/get-t0-itmA-.js +138 -0
- package/dist/prod/packages/shared-chunks/get_properties-Nn08mLAH.js +55 -0
- package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/prod/packages/shared-chunks/hash-mcs3pEFO.js +192 -0
- package/dist/prod/packages/shared-chunks/helper-DLjV2ZZW.js +298 -0
- package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index-Bj71BDDA.js} +17 -10
- package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/prod/packages/shared-chunks/index-qDFz6Mfe.js +2322 -0
- package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property--eJunJph.js} +2 -3
- package/dist/prod/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/prod/packages/shared-chunks/internal-DidurjJB.js +137 -0
- package/dist/prod/packages/shared-chunks/internal-helper-DIbr1RgC.js +7 -0
- package/dist/prod/packages/shared-chunks/{neq-BqdovTuC.js → invoke-Cj5zMqHz.js} +4 -24
- package/dist/{dev/packages/shared-chunks/is_proxy-B0smdQy8.js → prod/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/prod/packages/shared-chunks/libraries-_k-4KK5_.js +59 -0
- package/dist/prod/packages/shared-chunks/meta-B9mldqPL.js +36 -0
- package/dist/{dev/packages/shared-chunks/name-Z7dpqvzn.js → prod/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/prod/packages/shared-chunks/namespace_search-BfvzEQzN.js +134 -0
- package/dist/prod/packages/shared-chunks/normalize-D9jDJVGg.js +84 -0
- package/dist/prod/packages/shared-chunks/observers-CDkeR0nI.js +199 -0
- package/dist/prod/packages/shared-chunks/on-B5NVufs_.js +228 -0
- package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/prod/packages/shared-chunks/or-3AxY5TPj.js +91 -0
- package/dist/{dev/packages/shared-chunks/program-DfV0v8aa.js → prod/packages/shared-chunks/program-B7CWdS8W.js} +1 -2
- package/dist/{dev/packages/shared-chunks/program-context-sJz0oHOA.js → prod/packages/shared-chunks/program-context-B8HKU7wu.js} +4 -3
- package/dist/prod/packages/shared-chunks/property_get-CAFdpRyu.js +121 -0
- package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-BunbMFtp.js} +3 -5
- package/dist/prod/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/prod/packages/shared-chunks/{reference-BNqcwZWH.js → reference-BshxG6wn.js} +3 -3
- package/dist/{dev/packages/shared-chunks/registers-ylirb0dq.js → prod/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{dev/packages/shared-chunks/rehydrate-builder-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-DJ8k-6fg.js} +7 -7
- package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-DkJJmoI4.js} +488 -12
- package/dist/{dev/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → prod/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.js → prod/packages/shared-chunks/serialize-builder-R3Ozg0sC.js} +2 -10
- package/dist/prod/packages/shared-chunks/set_properties-LT3RzRmJ.js +48 -0
- package/dist/prod/packages/shared-chunks/{setup-registry-Cs-7NIJU.js → setup-registry-C2KfZJWI.js} +34 -13
- package/dist/prod/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/prod/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/prod/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/prod/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
- package/dist/prod/packages/shared-chunks/textarea-CHqL0Rdh.js +454 -0
- package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-DAVrVqJl.js} +5 -4
- package/dist/prod/packages/shared-chunks/tracked-data-C83f5V5S.js +31 -0
- package/dist/prod/packages/shared-chunks/unique-id-CfHImDRV.js +32 -0
- package/dist/prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/prod/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/docs/data.json +1237 -1023
- package/lib/index.js +0 -1
- package/package.json +14 -12
- package/types/stable/@ember/-internals/container/lib/registry.d.ts +1 -1
- package/types/stable/@ember/-internals/deprecations/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
- package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
- package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
- package/types/stable/@ember/-internals/views/index.d.ts +0 -1
- package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
- package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
- package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
- package/types/stable/@ember/application/index.d.ts +5 -4
- package/types/stable/@ember/application/instance.d.ts +4 -3
- package/types/stable/@ember/application/namespace.d.ts +1 -1
- package/types/stable/@ember/array/proxy.d.ts +4 -3
- package/types/stable/@ember/component/helper.d.ts +1 -1
- package/types/stable/@ember/component/index.d.ts +6 -3
- package/types/stable/@ember/controller/index.d.ts +2 -2
- package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
- package/types/stable/@ember/engine/index.d.ts +3 -3
- package/types/stable/@ember/engine/instance.d.ts +4 -3
- package/types/stable/@ember/helper/index.d.ts +167 -5
- package/types/stable/@ember/modifier/index.d.ts +1 -1
- package/types/stable/@ember/object/-internals.d.ts +2 -2
- package/types/stable/@ember/object/compat.d.ts +2 -2
- package/types/stable/@ember/object/computed.d.ts +3 -1
- package/types/stable/@ember/object/evented.d.ts +1 -1
- package/types/stable/@ember/object/events.d.ts +1 -1
- package/types/stable/@ember/object/index.d.ts +8 -2
- package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
- package/types/stable/@ember/object/mixin.d.ts +1 -1
- package/types/stable/@ember/object/observers.d.ts +1 -1
- package/types/stable/@ember/object/proxy.d.ts +1 -1
- package/types/stable/@ember/reactive/collections.d.ts +6 -6
- package/types/stable/@ember/renderer/index.d.ts +2 -2
- package/types/stable/@ember/routing/index.d.ts +1 -1
- package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
- package/types/stable/@ember/routing/route.d.ts +2 -2
- package/types/stable/@ember/routing/router.d.ts +2 -2
- package/types/stable/@ember/service/index.d.ts +1 -1
- package/types/stable/@ember/template/index.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
- package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
- package/types/stable/@ember/template-factory/index.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
- package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
- package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
- package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
- package/types/stable/@glimmer/runtime/index.d.ts +7 -4
- package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
- package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
- package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
- package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
- package/types/stable/@glimmer/tracking/index.d.ts +2 -1
- package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
- package/types/stable/index.d.ts +7 -1
- package/dist/dev/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/dev/packages/shared-chunks/assert-CUCJBR2C.js +0 -19
- package/dist/dev/packages/shared-chunks/constants-BbdWMvgs.js +0 -213
- package/dist/dev/packages/shared-chunks/dynamic-CgX8M02_.js +0 -3823
- package/dist/dev/packages/shared-chunks/element-builder-BpJIoi99.js +0 -404
- package/dist/dev/packages/shared-chunks/fragment-Cc5k9Oy4.js +0 -911
- package/dist/dev/packages/shared-chunks/index-RzG0Jvjx.js +0 -6306
- package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
- package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
- package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
- package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
- package/dist/prod/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/prod/packages/shared-chunks/constants-DThhT5fu.js +0 -210
- package/dist/prod/packages/shared-chunks/fragment-D7nBU9ae.js +0 -925
- package/dist/prod/packages/shared-chunks/index-r-Dz_hzt.js +0 -5931
- package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
- package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
- package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
- package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
- package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +0 -8
- package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { scheduleRevalidate } from '../@glimmer/global-context/index.js';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
|
|
5
|
+
function unwrap(val) {
|
|
6
|
+
if (val === null || val === undefined) throw new Error(`Expected value to be present`);
|
|
7
|
+
return val;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//////////
|
|
11
|
+
|
|
12
|
+
const CONSTANT = 0;
|
|
13
|
+
const INITIAL = 1;
|
|
14
|
+
const VOLATILE = NaN;
|
|
15
|
+
let $REVISION = INITIAL;
|
|
16
|
+
function bump() {
|
|
17
|
+
$REVISION++;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//////////
|
|
21
|
+
|
|
22
|
+
const DIRYTABLE_TAG_ID = 0;
|
|
23
|
+
const UPDATABLE_TAG_ID = 1;
|
|
24
|
+
const COMBINATOR_TAG_ID = 2;
|
|
25
|
+
const CONSTANT_TAG_ID = 3;
|
|
26
|
+
|
|
27
|
+
//////////
|
|
28
|
+
|
|
29
|
+
const COMPUTE = Symbol('TAG_COMPUTE');
|
|
30
|
+
Reflect.set(globalThis, 'COMPUTE_SYMBOL', COMPUTE);
|
|
31
|
+
|
|
32
|
+
//////////
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* `value` receives a tag and returns an opaque Revision based on that tag. This
|
|
36
|
+
* snapshot can then later be passed to `validate` with the same tag to
|
|
37
|
+
* determine if the tag has changed at all since the time that `value` was
|
|
38
|
+
* called.
|
|
39
|
+
*
|
|
40
|
+
* @param tag
|
|
41
|
+
*/
|
|
42
|
+
function valueForTag(tag) {
|
|
43
|
+
return tag[COMPUTE]();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* `validate` receives a tag and a snapshot from a previous call to `value` with
|
|
48
|
+
* the same tag, and determines if the tag is still valid compared to the
|
|
49
|
+
* snapshot. If the tag's state has changed at all since then, `validate` will
|
|
50
|
+
* return false, otherwise it will return true. This is used to determine if a
|
|
51
|
+
* calculation related to the tags should be rerun.
|
|
52
|
+
*
|
|
53
|
+
* @param tag
|
|
54
|
+
* @param snapshot
|
|
55
|
+
*/
|
|
56
|
+
function validateTag(tag, snapshot) {
|
|
57
|
+
return snapshot >= tag[COMPUTE]();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//////////
|
|
61
|
+
|
|
62
|
+
const TYPE = Symbol('TAG_TYPE');
|
|
63
|
+
|
|
64
|
+
// this is basically a const
|
|
65
|
+
let ALLOW_CYCLES;
|
|
66
|
+
class MonomorphicTagImpl {
|
|
67
|
+
static combine(tags) {
|
|
68
|
+
switch (tags.length) {
|
|
69
|
+
case 0:
|
|
70
|
+
return CONSTANT_TAG;
|
|
71
|
+
case 1:
|
|
72
|
+
return tags[0];
|
|
73
|
+
default:
|
|
74
|
+
{
|
|
75
|
+
let tag = new MonomorphicTagImpl(COMBINATOR_TAG_ID);
|
|
76
|
+
tag.subtag = tags;
|
|
77
|
+
return tag;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
revision = INITIAL;
|
|
82
|
+
lastChecked = INITIAL;
|
|
83
|
+
lastValue = INITIAL;
|
|
84
|
+
isUpdating = false;
|
|
85
|
+
subtag = null;
|
|
86
|
+
subtagBufferCache = null;
|
|
87
|
+
constructor(type) {
|
|
88
|
+
this[TYPE] = type;
|
|
89
|
+
}
|
|
90
|
+
[COMPUTE]() {
|
|
91
|
+
let {
|
|
92
|
+
lastChecked
|
|
93
|
+
} = this;
|
|
94
|
+
if (this.isUpdating) {
|
|
95
|
+
this.lastChecked = ++$REVISION;
|
|
96
|
+
} else if (lastChecked !== $REVISION) {
|
|
97
|
+
this.isUpdating = true;
|
|
98
|
+
this.lastChecked = $REVISION;
|
|
99
|
+
try {
|
|
100
|
+
let {
|
|
101
|
+
subtag,
|
|
102
|
+
revision
|
|
103
|
+
} = this;
|
|
104
|
+
if (subtag !== null) {
|
|
105
|
+
if (Array.isArray(subtag)) {
|
|
106
|
+
for (const tag of subtag) {
|
|
107
|
+
let value = tag[COMPUTE]();
|
|
108
|
+
revision = Math.max(value, revision);
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
let subtagValue = subtag[COMPUTE]();
|
|
112
|
+
if (subtagValue === this.subtagBufferCache) {
|
|
113
|
+
revision = Math.max(revision, this.lastValue);
|
|
114
|
+
} else {
|
|
115
|
+
// Clear the temporary buffer cache
|
|
116
|
+
this.subtagBufferCache = null;
|
|
117
|
+
revision = Math.max(revision, subtagValue);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
this.lastValue = revision;
|
|
122
|
+
} finally {
|
|
123
|
+
this.isUpdating = false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return this.lastValue;
|
|
127
|
+
}
|
|
128
|
+
static updateTag(_tag, _subtag) {
|
|
129
|
+
|
|
130
|
+
// TODO: TS 3.7 should allow us to do this via assertion
|
|
131
|
+
let tag = _tag;
|
|
132
|
+
let subtag = _subtag;
|
|
133
|
+
if (subtag === CONSTANT_TAG) {
|
|
134
|
+
tag.subtag = null;
|
|
135
|
+
} else {
|
|
136
|
+
// There are two different possibilities when updating a subtag:
|
|
137
|
+
//
|
|
138
|
+
// 1. subtag[COMPUTE]() <= tag[COMPUTE]();
|
|
139
|
+
// 2. subtag[COMPUTE]() > tag[COMPUTE]();
|
|
140
|
+
//
|
|
141
|
+
// The first possibility is completely fine within our caching model, but
|
|
142
|
+
// the second possibility presents a problem. If the parent tag has
|
|
143
|
+
// already been read, then it's value is cached and will not update to
|
|
144
|
+
// reflect the subtag's greater value. Next time the cache is busted, the
|
|
145
|
+
// subtag's value _will_ be read, and it's value will be _greater_ than
|
|
146
|
+
// the saved snapshot of the parent, causing the resulting calculation to
|
|
147
|
+
// be rerun erroneously.
|
|
148
|
+
//
|
|
149
|
+
// In order to prevent this, when we first update to a new subtag we store
|
|
150
|
+
// its computed value, and then check against that computed value on
|
|
151
|
+
// subsequent updates. If its value hasn't changed, then we return the
|
|
152
|
+
// parent's previous value. Once the subtag changes for the first time,
|
|
153
|
+
// we clear the cache and everything is finally in sync with the parent.
|
|
154
|
+
tag.subtagBufferCache = subtag[COMPUTE]();
|
|
155
|
+
tag.subtag = subtag;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
static dirtyTag(tag, disableConsumptionAssertion) {
|
|
159
|
+
tag.revision = ++$REVISION;
|
|
160
|
+
scheduleRevalidate();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const DIRTY_TAG = MonomorphicTagImpl.dirtyTag;
|
|
164
|
+
const UPDATE_TAG = MonomorphicTagImpl.updateTag;
|
|
165
|
+
|
|
166
|
+
//////////
|
|
167
|
+
|
|
168
|
+
function createTag() {
|
|
169
|
+
return new MonomorphicTagImpl(DIRYTABLE_TAG_ID);
|
|
170
|
+
}
|
|
171
|
+
function createUpdatableTag() {
|
|
172
|
+
return new MonomorphicTagImpl(UPDATABLE_TAG_ID);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
//////////
|
|
176
|
+
|
|
177
|
+
const CONSTANT_TAG = new MonomorphicTagImpl(CONSTANT_TAG_ID);
|
|
178
|
+
function isConstTag(tag) {
|
|
179
|
+
return tag === CONSTANT_TAG;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
//////////
|
|
183
|
+
|
|
184
|
+
const VOLATILE_TAG_ID = 100;
|
|
185
|
+
class VolatileTag {
|
|
186
|
+
[TYPE] = VOLATILE_TAG_ID;
|
|
187
|
+
[COMPUTE]() {
|
|
188
|
+
return VOLATILE;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const VOLATILE_TAG = new VolatileTag();
|
|
192
|
+
|
|
193
|
+
//////////
|
|
194
|
+
|
|
195
|
+
const CURRENT_TAG_ID = 101;
|
|
196
|
+
class CurrentTag {
|
|
197
|
+
[TYPE] = CURRENT_TAG_ID;
|
|
198
|
+
[COMPUTE]() {
|
|
199
|
+
return $REVISION;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const CURRENT_TAG = new CurrentTag();
|
|
203
|
+
|
|
204
|
+
//////////
|
|
205
|
+
|
|
206
|
+
const combine = MonomorphicTagImpl.combine;
|
|
207
|
+
|
|
208
|
+
// Warm
|
|
209
|
+
|
|
210
|
+
let tag1 = createUpdatableTag();
|
|
211
|
+
let tag2 = createUpdatableTag();
|
|
212
|
+
let tag3 = createUpdatableTag();
|
|
213
|
+
valueForTag(tag1);
|
|
214
|
+
DIRTY_TAG(tag1);
|
|
215
|
+
valueForTag(tag1);
|
|
216
|
+
UPDATE_TAG(tag1, combine([tag2, tag3]));
|
|
217
|
+
valueForTag(tag1);
|
|
218
|
+
DIRTY_TAG(tag2);
|
|
219
|
+
valueForTag(tag1);
|
|
220
|
+
DIRTY_TAG(tag3);
|
|
221
|
+
valueForTag(tag1);
|
|
222
|
+
UPDATE_TAG(tag1, tag3);
|
|
223
|
+
valueForTag(tag1);
|
|
224
|
+
DIRTY_TAG(tag3);
|
|
225
|
+
valueForTag(tag1);
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* An object that that tracks @tracked properties that were consumed.
|
|
229
|
+
*/
|
|
230
|
+
class Tracker {
|
|
231
|
+
tags = new Set();
|
|
232
|
+
last = null;
|
|
233
|
+
add(tag) {
|
|
234
|
+
if (tag === CONSTANT_TAG) return;
|
|
235
|
+
this.tags.add(tag);
|
|
236
|
+
this.last = tag;
|
|
237
|
+
}
|
|
238
|
+
combine() {
|
|
239
|
+
let {
|
|
240
|
+
tags
|
|
241
|
+
} = this;
|
|
242
|
+
if (tags.size === 0) {
|
|
243
|
+
return CONSTANT_TAG;
|
|
244
|
+
} else if (tags.size === 1) {
|
|
245
|
+
return this.last;
|
|
246
|
+
} else {
|
|
247
|
+
return combine(Array.from(this.tags));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Whenever a tracked computed property is entered, the current tracker is
|
|
254
|
+
* saved off and a new tracker is replaced.
|
|
255
|
+
*
|
|
256
|
+
* Any tracked properties consumed are added to the current tracker.
|
|
257
|
+
*
|
|
258
|
+
* When a tracked computed property is exited, the tracker's tags are
|
|
259
|
+
* combined and added to the parent tracker.
|
|
260
|
+
*
|
|
261
|
+
* The consequence is that each tracked computed property has a tag
|
|
262
|
+
* that corresponds to the tracked properties consumed inside of
|
|
263
|
+
* itself, including child tracked computed properties.
|
|
264
|
+
*/
|
|
265
|
+
let CURRENT_TRACKER = null;
|
|
266
|
+
const OPEN_TRACK_FRAMES = [];
|
|
267
|
+
function beginTrackFrame(debuggingContext) {
|
|
268
|
+
OPEN_TRACK_FRAMES.push(CURRENT_TRACKER);
|
|
269
|
+
CURRENT_TRACKER = new Tracker();
|
|
270
|
+
}
|
|
271
|
+
function endTrackFrame() {
|
|
272
|
+
let current = CURRENT_TRACKER;
|
|
273
|
+
CURRENT_TRACKER = OPEN_TRACK_FRAMES.pop() || null;
|
|
274
|
+
return unwrap(current).combine();
|
|
275
|
+
}
|
|
276
|
+
function beginUntrackFrame() {
|
|
277
|
+
OPEN_TRACK_FRAMES.push(CURRENT_TRACKER);
|
|
278
|
+
CURRENT_TRACKER = null;
|
|
279
|
+
}
|
|
280
|
+
function endUntrackFrame() {
|
|
281
|
+
CURRENT_TRACKER = OPEN_TRACK_FRAMES.pop() || null;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// This function is only for handling errors and resetting to a valid state
|
|
285
|
+
function resetTracking() {
|
|
286
|
+
while (OPEN_TRACK_FRAMES.length > 0) {
|
|
287
|
+
OPEN_TRACK_FRAMES.pop();
|
|
288
|
+
}
|
|
289
|
+
CURRENT_TRACKER = null;
|
|
290
|
+
}
|
|
291
|
+
function isTracking() {
|
|
292
|
+
return CURRENT_TRACKER !== null;
|
|
293
|
+
}
|
|
294
|
+
function consumeTag(tag) {
|
|
295
|
+
if (CURRENT_TRACKER !== null) {
|
|
296
|
+
CURRENT_TRACKER.add(tag);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// public interface
|
|
301
|
+
|
|
302
|
+
const FN = Symbol('FN');
|
|
303
|
+
const LAST_VALUE = Symbol('LAST_VALUE');
|
|
304
|
+
const TAG = Symbol('TAG');
|
|
305
|
+
const SNAPSHOT = Symbol('SNAPSHOT');
|
|
306
|
+
function createCache(fn, debuggingLabel) {
|
|
307
|
+
let cache = {
|
|
308
|
+
[FN]: fn,
|
|
309
|
+
[LAST_VALUE]: undefined,
|
|
310
|
+
[TAG]: undefined,
|
|
311
|
+
[SNAPSHOT]: -1
|
|
312
|
+
};
|
|
313
|
+
return cache;
|
|
314
|
+
}
|
|
315
|
+
function getValue(cache) {
|
|
316
|
+
let fn = cache[FN];
|
|
317
|
+
let tag = cache[TAG];
|
|
318
|
+
let snapshot = cache[SNAPSHOT];
|
|
319
|
+
if (tag === undefined || !validateTag(tag, snapshot)) {
|
|
320
|
+
beginTrackFrame();
|
|
321
|
+
try {
|
|
322
|
+
cache[LAST_VALUE] = fn();
|
|
323
|
+
} finally {
|
|
324
|
+
tag = endTrackFrame();
|
|
325
|
+
cache[TAG] = tag;
|
|
326
|
+
cache[SNAPSHOT] = valueForTag(tag);
|
|
327
|
+
consumeTag(tag);
|
|
328
|
+
}
|
|
329
|
+
} else {
|
|
330
|
+
consumeTag(tag);
|
|
331
|
+
}
|
|
332
|
+
return cache[LAST_VALUE];
|
|
333
|
+
}
|
|
334
|
+
function isConst(cache) {
|
|
335
|
+
let tag = cache[TAG];
|
|
336
|
+
return isConstTag(tag);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
//////////
|
|
340
|
+
|
|
341
|
+
// Legacy tracking APIs
|
|
342
|
+
|
|
343
|
+
// track() shouldn't be necessary at all in the VM once the autotracking
|
|
344
|
+
// refactors are merged, and we should generally be moving away from it. It may
|
|
345
|
+
// be necessary in Ember for a while longer, but I think we'll be able to drop
|
|
346
|
+
// it in favor of cache sooner rather than later.
|
|
347
|
+
function track(block, debugLabel) {
|
|
348
|
+
beginTrackFrame();
|
|
349
|
+
let tag;
|
|
350
|
+
try {
|
|
351
|
+
block();
|
|
352
|
+
} finally {
|
|
353
|
+
tag = endTrackFrame();
|
|
354
|
+
}
|
|
355
|
+
return tag;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
// untrack() is currently mainly used to handle places that were previously not
|
|
359
|
+
// tracked, and that tracking now would cause backtracking rerender assertions.
|
|
360
|
+
// I think once we move everyone forward onto modern APIs, we'll probably be
|
|
361
|
+
// able to remove it, but I'm not sure yet.
|
|
362
|
+
function untrack(callback) {
|
|
363
|
+
beginUntrackFrame();
|
|
364
|
+
try {
|
|
365
|
+
return callback();
|
|
366
|
+
} finally {
|
|
367
|
+
endUntrackFrame();
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
export { ALLOW_CYCLES as A, CONSTANT_TAG as C, DIRTY_TAG as D, INITIAL as I, UPDATE_TAG as U, VOLATILE as V, consumeTag as a, createCache as b, createUpdatableTag as c, valueForTag as d, combine as e, COMPUTE as f, getValue as g, CONSTANT as h, CURRENT_TAG as i, CurrentTag as j, VOLATILE_TAG as k, VolatileTag as l, beginTrackFrame as m, beginUntrackFrame as n, bump as o, createTag as p, endTrackFrame as q, endUntrackFrame as r, isConst as s, track as t, untrack as u, validateTag as v, isConstTag as w, isTracking as x, resetTracking as y };
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { peekMeta, meta } from '../@ember/-internals/meta/lib/meta.js';
|
|
2
|
+
import { i as isObject } from './spec-BXl1reqK.js';
|
|
3
|
+
import { C as CONSTANT_TAG, e as combine, v as validateTag, c as createUpdatableTag, U as UPDATE_TAG } from './cache-BIlOoPA7.js';
|
|
4
|
+
import { t as tagFor, d as dirtyTagFor, a as tagMetaFor } from './meta-B9mldqPL.js';
|
|
5
|
+
import { g as getCustomTagFor } from './args-proxy-BDXbXCF9.js';
|
|
6
|
+
|
|
7
|
+
function objectAt(array, index) {
|
|
8
|
+
if (Array.isArray(array)) {
|
|
9
|
+
return array[index];
|
|
10
|
+
} else {
|
|
11
|
+
return array.objectAt(index);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/////////
|
|
16
|
+
|
|
17
|
+
// This is exported for `@tracked`, but should otherwise be avoided. Use `tagForObject`.
|
|
18
|
+
const SELF_TAG = Symbol('SELF_TAG');
|
|
19
|
+
function tagForProperty(obj, propertyKey, addMandatorySetter = false, meta) {
|
|
20
|
+
let customTagFor = getCustomTagFor(obj);
|
|
21
|
+
if (customTagFor !== undefined) {
|
|
22
|
+
return customTagFor(obj, propertyKey, addMandatorySetter);
|
|
23
|
+
}
|
|
24
|
+
let tag = tagFor(obj, propertyKey, meta);
|
|
25
|
+
return tag;
|
|
26
|
+
}
|
|
27
|
+
function tagForObject(obj) {
|
|
28
|
+
if (isObject(obj)) {
|
|
29
|
+
return tagFor(obj, SELF_TAG);
|
|
30
|
+
}
|
|
31
|
+
return CONSTANT_TAG;
|
|
32
|
+
}
|
|
33
|
+
function markObjectAsDirty(obj, propertyKey) {
|
|
34
|
+
dirtyTagFor(obj, propertyKey);
|
|
35
|
+
dirtyTagFor(obj, SELF_TAG);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const CHAIN_PASS_THROUGH = new WeakSet();
|
|
39
|
+
function finishLazyChains(meta, key, value) {
|
|
40
|
+
let lazyTags = meta.readableLazyChainsFor(key);
|
|
41
|
+
if (lazyTags === undefined) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (isObject(value)) {
|
|
45
|
+
for (let [tag, deps] of lazyTags) {
|
|
46
|
+
UPDATE_TAG(tag, getChainTagsForKey(value, deps, tagMetaFor(value), peekMeta(value)));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
lazyTags.length = 0;
|
|
50
|
+
}
|
|
51
|
+
function getChainTagsForKeys(obj, keys, tagMeta, meta) {
|
|
52
|
+
let tags = [];
|
|
53
|
+
for (let key of keys) {
|
|
54
|
+
getChainTags(tags, obj, key, tagMeta, meta);
|
|
55
|
+
}
|
|
56
|
+
return combine(tags);
|
|
57
|
+
}
|
|
58
|
+
function getChainTagsForKey(obj, key, tagMeta, meta) {
|
|
59
|
+
return combine(getChainTags([], obj, key, tagMeta, meta));
|
|
60
|
+
}
|
|
61
|
+
function getChainTags(chainTags, obj, path, tagMeta, meta$1) {
|
|
62
|
+
let current = obj;
|
|
63
|
+
let currentTagMeta = tagMeta;
|
|
64
|
+
let currentMeta = meta$1;
|
|
65
|
+
let pathLength = path.length;
|
|
66
|
+
let segmentEnd = -1;
|
|
67
|
+
// prevent closures
|
|
68
|
+
let segment, descriptor;
|
|
69
|
+
while (true) {
|
|
70
|
+
let lastSegmentEnd = segmentEnd + 1;
|
|
71
|
+
segmentEnd = path.indexOf('.', lastSegmentEnd);
|
|
72
|
+
if (segmentEnd === -1) {
|
|
73
|
+
segmentEnd = pathLength;
|
|
74
|
+
}
|
|
75
|
+
segment = path.slice(lastSegmentEnd, segmentEnd);
|
|
76
|
+
|
|
77
|
+
// If the segment is an @each, we can process it and then break
|
|
78
|
+
if (segment === '@each' && segmentEnd !== pathLength) {
|
|
79
|
+
lastSegmentEnd = segmentEnd + 1;
|
|
80
|
+
segmentEnd = path.indexOf('.', lastSegmentEnd);
|
|
81
|
+
let arrLength = current.length;
|
|
82
|
+
if (typeof arrLength !== 'number' ||
|
|
83
|
+
// TODO: should the second test be `isEmberArray` instead?
|
|
84
|
+
!(Array.isArray(current) || 'objectAt' in current)) {
|
|
85
|
+
// If the current object isn't an array, there's nothing else to do,
|
|
86
|
+
// we don't watch individual properties. Break out of the loop.
|
|
87
|
+
break;
|
|
88
|
+
} else if (arrLength === 0) {
|
|
89
|
+
// Fast path for empty arrays
|
|
90
|
+
chainTags.push(tagForProperty(current, '[]'));
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
if (segmentEnd === -1) {
|
|
94
|
+
segment = path.slice(lastSegmentEnd);
|
|
95
|
+
} else {
|
|
96
|
+
// Deprecated, remove once we turn the deprecation into an assertion
|
|
97
|
+
segment = path.slice(lastSegmentEnd, segmentEnd);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Push the tags for each item's property
|
|
101
|
+
for (let i = 0; i < arrLength; i++) {
|
|
102
|
+
let item = objectAt(current, i);
|
|
103
|
+
if (item) {
|
|
104
|
+
chainTags.push(tagForProperty(item, segment, true));
|
|
105
|
+
currentMeta = peekMeta(item);
|
|
106
|
+
descriptor = currentMeta !== null ? currentMeta.peekDescriptors(segment) : undefined;
|
|
107
|
+
|
|
108
|
+
// If the key is an alias, we need to bootstrap it
|
|
109
|
+
if (descriptor !== undefined && typeof descriptor.altKey === 'string') {
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
111
|
+
item[segment];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Push the tag for the array length itself
|
|
117
|
+
chainTags.push(tagForProperty(current, '[]', true, currentTagMeta));
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
let propertyTag = tagForProperty(current, segment, true, currentTagMeta);
|
|
121
|
+
descriptor = currentMeta !== null ? currentMeta.peekDescriptors(segment) : undefined;
|
|
122
|
+
chainTags.push(propertyTag);
|
|
123
|
+
|
|
124
|
+
// If we're at the end of the path, processing the last segment, and it's
|
|
125
|
+
// not an alias, we should _not_ get the last value, since we already have
|
|
126
|
+
// its tag. There's no reason to access it and do more work.
|
|
127
|
+
if (segmentEnd === pathLength) {
|
|
128
|
+
// If the key was an alias, we should always get the next value in order to
|
|
129
|
+
// bootstrap the alias. This is because aliases, unlike other CPs, should
|
|
130
|
+
// always be in sync with the aliased value.
|
|
131
|
+
if (CHAIN_PASS_THROUGH.has(descriptor)) {
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
133
|
+
current[segment];
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
if (descriptor === undefined) {
|
|
138
|
+
// If the descriptor is undefined, then its a normal property, so we should
|
|
139
|
+
// lookup the value to chain off of like normal.
|
|
140
|
+
|
|
141
|
+
if (!(segment in current) && typeof current.unknownProperty === 'function') {
|
|
142
|
+
current = current.unknownProperty(segment);
|
|
143
|
+
} else {
|
|
144
|
+
current = current[segment];
|
|
145
|
+
}
|
|
146
|
+
} else if (CHAIN_PASS_THROUGH.has(descriptor)) {
|
|
147
|
+
current = current[segment];
|
|
148
|
+
} else {
|
|
149
|
+
// If the descriptor is defined, then its a normal CP (not an alias, which
|
|
150
|
+
// would have been handled earlier). We get the last revision to check if
|
|
151
|
+
// the CP is still valid, and if so we use the cached value. If not, then
|
|
152
|
+
// we create a lazy chain lookup, and the next time the CP is calculated,
|
|
153
|
+
// it will update that lazy chain.
|
|
154
|
+
let instanceMeta = currentMeta.source === current ? currentMeta : meta(current);
|
|
155
|
+
let lastRevision = instanceMeta.revisionFor(segment);
|
|
156
|
+
if (lastRevision !== undefined && validateTag(propertyTag, lastRevision)) {
|
|
157
|
+
current = instanceMeta.valueFor(segment);
|
|
158
|
+
} else {
|
|
159
|
+
// use metaFor here to ensure we have the meta for the instance
|
|
160
|
+
let lazyChains = instanceMeta.writableLazyChainsFor(segment);
|
|
161
|
+
let rest = path.substring(segmentEnd + 1);
|
|
162
|
+
let placeholderTag = createUpdatableTag();
|
|
163
|
+
lazyChains.push([placeholderTag, rest]);
|
|
164
|
+
chainTags.push(placeholderTag);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (!isObject(current)) {
|
|
169
|
+
// we've hit the end of the chain for now, break out
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
currentTagMeta = tagMetaFor(current);
|
|
173
|
+
currentMeta = peekMeta(current);
|
|
174
|
+
}
|
|
175
|
+
return chainTags;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export { CHAIN_PASS_THROUGH as C, SELF_TAG as S, tagForProperty as a, getChainTagsForKeys as b, finishLazyChains as f, getChainTagsForKey as g, markObjectAsDirty as m, objectAt as o, tagForObject as t };
|