ember-source 7.1.0-alpha.4 → 7.1.0-alpha.5
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/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 +1 -18
- 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 +1355 -16
- 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 -29
- package/dist/dev/packages/@ember/engine/instance.js +3 -8
- package/dist/dev/packages/@ember/helper/index.js +169 -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 +589 -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 +12 -23
- package/dist/dev/packages/@ember/routing/router-service.js +8 -17
- 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 +2 -10
- 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/manager/index.js +4 -314
- package/dist/dev/packages/@glimmer/node/index.js +3 -11
- package/dist/dev/packages/@glimmer/opcode-compiler/index.js +5 -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 +17 -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-AYt3zE12.js +310 -0
- package/dist/dev/packages/shared-chunks/{api-BQMslHhq.js → api-WvJPuo9z.js} +4 -5
- 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/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-CXB_8GdR.js} +7043 -234
- 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-CvC8E_4-.js +617 -0
- package/dist/dev/packages/shared-chunks/{fragment-Cc5k9Oy4.js → curried-BVwSNqpf.js} +5 -288
- package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
- package/dist/dev/packages/shared-chunks/element-C-QcIABg.js +109 -0
- package/dist/dev/packages/shared-chunks/element-builder-kHVx0F__.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-CpJjYeJO.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-D3BENmhU.js +192 -0
- package/dist/dev/packages/shared-chunks/helper-DlC4YesW.js +314 -0
- package/dist/dev/packages/shared-chunks/index-CTxkmV78.js +2500 -0
- package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-DmGmwWPJ.js} +29 -29
- 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-CbQSKXEm.js +140 -0
- package/dist/dev/packages/shared-chunks/internal-helper-Dsl9_7H_.js +7 -0
- package/dist/dev/packages/shared-chunks/{neq-DujMPv1k.js → invoke-B6j6DdDz.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-D8QwT-eN.js +253 -0
- package/dist/dev/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
- package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/dev/packages/shared-chunks/or-DBU9Ge4r.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-CqcQMsfa.js} +3 -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/dev/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
- package/dist/{prod/packages/shared-chunks/rehydrate-builder-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DdzXTaJk.js} +7 -4
- package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-DDdabL30.js} +510 -15
- package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.js → dev/packages/shared-chunks/serialize-builder-B3u9Wr3n.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-XxD0xvgf.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/template-BRrQR6KS.js +16 -0
- package/dist/dev/packages/shared-chunks/template-only-Yluyu0DY.js +78 -0
- package/dist/dev/packages/shared-chunks/textarea-C0Us0PNJ.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-A83bjEE-.js +32 -0
- package/dist/{prod/packages/shared-chunks/on-CersD7PL.js → dev/packages/shared-chunks/untouchable-this-cH6_N2LJ.js} +215 -1397
- package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/dist/prod/packages/@ember/-internals/container/index.js +5 -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 +1 -2
- package/dist/prod/packages/@ember/-internals/metal/index.js +19 -13
- package/dist/prod/packages/@ember/-internals/routing/index.js +2 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -10
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +2 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -6
- package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
- package/dist/prod/packages/@ember/-internals/utils/index.js +33 -30
- 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 +2 -6
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +3 -7
- package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +2 -2
- package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -14
- package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +1 -2
- package/dist/prod/packages/@ember/application/index.js +5 -24
- package/dist/prod/packages/@ember/application/instance.js +6 -18
- package/dist/prod/packages/@ember/application/namespace.js +5 -8
- package/dist/prod/packages/@ember/array/index.js +8 -12
- package/dist/prod/packages/@ember/array/proxy.js +10 -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 +1292 -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 +4 -25
- package/dist/prod/packages/@ember/engine/instance.js +4 -9
- package/dist/prod/packages/@ember/helper/index.js +169 -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 +3 -6
- package/dist/prod/packages/@ember/object/compat.js +4 -7
- package/dist/prod/packages/@ember/object/computed.js +2 -8
- package/dist/prod/packages/@ember/object/core.js +9 -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 +3 -6
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +6 -20
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -9
- package/dist/prod/packages/@ember/object/mixin.js +7 -9
- package/dist/prod/packages/@ember/object/observable.js +8 -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 +589 -1
- package/dist/prod/packages/@ember/renderer/index.js +1 -12
- package/dist/prod/packages/@ember/routing/history-location.js +1 -1
- package/dist/prod/packages/@ember/routing/index.js +581 -12
- package/dist/prod/packages/@ember/routing/lib/dsl.js +1 -1
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +2 -6
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +5 -14
- package/dist/prod/packages/@ember/routing/lib/utils.js +2 -6
- package/dist/prod/packages/@ember/routing/none-location.js +1 -1
- package/dist/prod/packages/@ember/routing/route.js +12 -21
- package/dist/prod/packages/@ember/routing/router-service.js +6 -14
- package/dist/prod/packages/@ember/routing/router.js +5 -17
- package/dist/prod/packages/@ember/runloop/index.js +2 -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 +13 -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 +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +1 -1
- 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 +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +127 -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 +1 -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 +5 -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 +16 -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 +5 -7
- package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-CLuFeKoV.js} +8 -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-DHdr4__s.js} +3 -3
- package/dist/prod/packages/shared-chunks/assert-CUCJBR2C.js +19 -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-BJqcuCM1.js +179 -0
- package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-DjQtTQGk.js} +7045 -193
- package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-2Udcmflw.js} +109 -239
- package/dist/prod/packages/shared-chunks/container-D5NwW5Fd.js +316 -0
- package/dist/prod/packages/shared-chunks/curly-BsqvV8G0.js +546 -0
- package/dist/prod/packages/shared-chunks/{fragment-D7nBU9ae.js → curried-BVwSNqpf.js} +6 -303
- package/dist/prod/packages/shared-chunks/debug-render-tree-BLtnOSbb.js +2049 -0
- package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-DBCISop4.js} +1 -1
- package/dist/prod/packages/shared-chunks/element-BjFr0tO0.js +101 -0
- package/dist/prod/packages/shared-chunks/{element-builder-CzXb9l1W.js → element-builder-BPjq0rxK.js} +109 -88
- package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
- package/dist/prod/packages/shared-chunks/events-970OxD6Q.js +175 -0
- package/dist/prod/packages/shared-chunks/get-D5wxdTkY.js +138 -0
- package/dist/prod/packages/shared-chunks/get_properties-BcAC5sGx.js +55 -0
- package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/prod/packages/shared-chunks/hash-DcUe-meU.js +192 -0
- package/dist/prod/packages/shared-chunks/helper-Da672z4a.js +299 -0
- package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index--2U-v2nf.js} +18 -10
- package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/prod/packages/shared-chunks/index-D87qoERP.js +2322 -0
- package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property-D9B-fPiH.js} +3 -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-Dr_CRwA_.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-DaXpIDYN.js +60 -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-Co4JALkS.js +199 -0
- package/dist/prod/packages/shared-chunks/on-C3ZQiUUD.js +228 -0
- package/dist/prod/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
- package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/prod/packages/shared-chunks/or-oTVMuHc8.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-CGMN-aQM.js} +3 -3
- package/dist/prod/packages/shared-chunks/property_get-hWJ0nGhW.js +122 -0
- package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-Dj5-ScWk.js} +4 -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/prod/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
- package/dist/{dev/packages/shared-chunks/rehydrate-builder-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-BKg2X6Lo.js} +7 -7
- package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-nx5-PsDW.js} +487 -12
- package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.js → prod/packages/shared-chunks/serialize-builder-BGbC30SN.js} +2 -10
- package/dist/prod/packages/shared-chunks/set_properties-oPyURk67.js +48 -0
- package/dist/prod/packages/shared-chunks/{setup-registry-Cs-7NIJU.js → setup-registry-TiaKLj5k.js} +35 -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/template-BRrQR6KS.js +16 -0
- package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
- package/dist/prod/packages/shared-chunks/textarea-CPKZ1c_O.js +455 -0
- package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-CffAABMz.js} +6 -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/well-known-_EVO9RaV.js +17 -0
- package/docs/data.json +1263 -1029
- package/package.json +1 -1
- 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/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 +177 -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 -0
- 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/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/shared-chunks/constants-DThhT5fu.js +0 -210
- 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/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { E as ENV } from './env-DXxsTFkM.js';
|
|
2
|
+
import { peekMeta } from '../@ember/-internals/meta/lib/meta.js';
|
|
3
|
+
import { registerDestructor } from '../@glimmer/destroyable/index.js';
|
|
4
|
+
import { d as valueForTag, v as validateTag, i as CURRENT_TAG } from './cache-BIlOoPA7.js';
|
|
5
|
+
import { a as tagMetaFor } from './meta-B9mldqPL.js';
|
|
6
|
+
import { g as getChainTagsForKey } from './chain-tags-BJqcuCM1.js';
|
|
7
|
+
import { a as addListener, r as removeListener, s as sendEvent } from './events-970OxD6Q.js';
|
|
8
|
+
|
|
9
|
+
const AFTER_OBSERVERS = ':change';
|
|
10
|
+
function changeEvent(keyName) {
|
|
11
|
+
return keyName + AFTER_OBSERVERS;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const SYNC_DEFAULT = !ENV._DEFAULT_ASYNC_OBSERVERS;
|
|
15
|
+
const SYNC_OBSERVERS = new Map();
|
|
16
|
+
const ASYNC_OBSERVERS = new Map();
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
@module @ember/object
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
@method addObserver
|
|
24
|
+
@static
|
|
25
|
+
@for @ember/object/observers
|
|
26
|
+
@param obj
|
|
27
|
+
@param {String} path
|
|
28
|
+
@param {Object|Function} target
|
|
29
|
+
@param {Function|String} [method]
|
|
30
|
+
@public
|
|
31
|
+
*/
|
|
32
|
+
function addObserver(obj, path, target, method, sync = SYNC_DEFAULT) {
|
|
33
|
+
let eventName = changeEvent(path);
|
|
34
|
+
addListener(obj, eventName, target, method, false, sync);
|
|
35
|
+
let meta = peekMeta(obj);
|
|
36
|
+
if (meta === null || !(meta.isPrototypeMeta(obj) || meta.isInitializing())) {
|
|
37
|
+
activateObserver(obj, eventName, sync);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
@method removeObserver
|
|
43
|
+
@static
|
|
44
|
+
@for @ember/object/observers
|
|
45
|
+
@param obj
|
|
46
|
+
@param {String} path
|
|
47
|
+
@param {Object|Function} target
|
|
48
|
+
@param {Function|String} [method]
|
|
49
|
+
@public
|
|
50
|
+
*/
|
|
51
|
+
function removeObserver(obj, path, target, method, sync = SYNC_DEFAULT) {
|
|
52
|
+
let eventName = changeEvent(path);
|
|
53
|
+
let meta = peekMeta(obj);
|
|
54
|
+
if (meta === null || !(meta.isPrototypeMeta(obj) || meta.isInitializing())) {
|
|
55
|
+
deactivateObserver(obj, eventName, sync);
|
|
56
|
+
}
|
|
57
|
+
removeListener(obj, eventName, target, method);
|
|
58
|
+
}
|
|
59
|
+
function getOrCreateActiveObserversFor(target, sync) {
|
|
60
|
+
let observerMap = sync === true ? SYNC_OBSERVERS : ASYNC_OBSERVERS;
|
|
61
|
+
if (!observerMap.has(target)) {
|
|
62
|
+
observerMap.set(target, new Map());
|
|
63
|
+
registerDestructor(target, () => destroyObservers(target), true);
|
|
64
|
+
}
|
|
65
|
+
return observerMap.get(target);
|
|
66
|
+
}
|
|
67
|
+
function activateObserver(target, eventName, sync = false) {
|
|
68
|
+
let activeObservers = getOrCreateActiveObserversFor(target, sync);
|
|
69
|
+
if (activeObservers.has(eventName)) {
|
|
70
|
+
activeObservers.get(eventName).count++;
|
|
71
|
+
} else {
|
|
72
|
+
let path = eventName.substring(0, eventName.lastIndexOf(':'));
|
|
73
|
+
let tag = getChainTagsForKey(target, path, tagMetaFor(target), peekMeta(target));
|
|
74
|
+
activeObservers.set(eventName, {
|
|
75
|
+
count: 1,
|
|
76
|
+
path,
|
|
77
|
+
tag,
|
|
78
|
+
lastRevision: valueForTag(tag),
|
|
79
|
+
suspended: false
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
let DEACTIVATE_SUSPENDED = false;
|
|
84
|
+
let SCHEDULED_DEACTIVATE = [];
|
|
85
|
+
function deactivateObserver(target, eventName, sync = false) {
|
|
86
|
+
if (DEACTIVATE_SUSPENDED === true) {
|
|
87
|
+
SCHEDULED_DEACTIVATE.push([target, eventName, sync]);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
let observerMap = sync === true ? SYNC_OBSERVERS : ASYNC_OBSERVERS;
|
|
91
|
+
let activeObservers = observerMap.get(target);
|
|
92
|
+
if (activeObservers !== undefined) {
|
|
93
|
+
let observer = activeObservers.get(eventName);
|
|
94
|
+
observer.count--;
|
|
95
|
+
if (observer.count === 0) {
|
|
96
|
+
activeObservers.delete(eventName);
|
|
97
|
+
if (activeObservers.size === 0) {
|
|
98
|
+
observerMap.delete(target);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function suspendedObserverDeactivation() {
|
|
104
|
+
DEACTIVATE_SUSPENDED = true;
|
|
105
|
+
}
|
|
106
|
+
function resumeObserverDeactivation() {
|
|
107
|
+
DEACTIVATE_SUSPENDED = false;
|
|
108
|
+
for (let [target, eventName, sync] of SCHEDULED_DEACTIVATE) {
|
|
109
|
+
deactivateObserver(target, eventName, sync);
|
|
110
|
+
}
|
|
111
|
+
SCHEDULED_DEACTIVATE = [];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Primarily used for cases where we are redefining a class, e.g. mixins/reopen
|
|
116
|
+
* being applied later. Revalidates all the observers, resetting their tags.
|
|
117
|
+
*
|
|
118
|
+
* @private
|
|
119
|
+
* @param target
|
|
120
|
+
*/
|
|
121
|
+
function revalidateObservers(target) {
|
|
122
|
+
if (ASYNC_OBSERVERS.has(target)) {
|
|
123
|
+
ASYNC_OBSERVERS.get(target).forEach(observer => {
|
|
124
|
+
observer.tag = getChainTagsForKey(target, observer.path, tagMetaFor(target), peekMeta(target));
|
|
125
|
+
observer.lastRevision = valueForTag(observer.tag);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (SYNC_OBSERVERS.has(target)) {
|
|
129
|
+
SYNC_OBSERVERS.get(target).forEach(observer => {
|
|
130
|
+
observer.tag = getChainTagsForKey(target, observer.path, tagMetaFor(target), peekMeta(target));
|
|
131
|
+
observer.lastRevision = valueForTag(observer.tag);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
let lastKnownRevision = 0;
|
|
136
|
+
function flushAsyncObservers(_schedule) {
|
|
137
|
+
let currentRevision = valueForTag(CURRENT_TAG);
|
|
138
|
+
if (lastKnownRevision === currentRevision) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
lastKnownRevision = currentRevision;
|
|
142
|
+
ASYNC_OBSERVERS.forEach((activeObservers, target) => {
|
|
143
|
+
let meta = peekMeta(target);
|
|
144
|
+
activeObservers.forEach((observer, eventName) => {
|
|
145
|
+
if (!validateTag(observer.tag, observer.lastRevision)) {
|
|
146
|
+
let sendObserver = () => {
|
|
147
|
+
try {
|
|
148
|
+
sendEvent(target, eventName, [target, observer.path], undefined, meta);
|
|
149
|
+
} finally {
|
|
150
|
+
observer.tag = getChainTagsForKey(target, observer.path, tagMetaFor(target), peekMeta(target));
|
|
151
|
+
observer.lastRevision = valueForTag(observer.tag);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
if (_schedule) {
|
|
155
|
+
_schedule('actions', sendObserver);
|
|
156
|
+
} else {
|
|
157
|
+
sendObserver();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function flushSyncObservers() {
|
|
164
|
+
// When flushing synchronous observers, we know that something has changed (we
|
|
165
|
+
// only do this during a notifyPropertyChange), so there's no reason to check
|
|
166
|
+
// a global revision.
|
|
167
|
+
|
|
168
|
+
SYNC_OBSERVERS.forEach((activeObservers, target) => {
|
|
169
|
+
let meta = peekMeta(target);
|
|
170
|
+
activeObservers.forEach((observer, eventName) => {
|
|
171
|
+
if (!observer.suspended && !validateTag(observer.tag, observer.lastRevision)) {
|
|
172
|
+
try {
|
|
173
|
+
observer.suspended = true;
|
|
174
|
+
sendEvent(target, eventName, [target, observer.path], undefined, meta);
|
|
175
|
+
} finally {
|
|
176
|
+
observer.tag = getChainTagsForKey(target, observer.path, tagMetaFor(target), peekMeta(target));
|
|
177
|
+
observer.lastRevision = valueForTag(observer.tag);
|
|
178
|
+
observer.suspended = false;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
function setObserverSuspended(target, property, suspended) {
|
|
185
|
+
let activeObservers = SYNC_OBSERVERS.get(target);
|
|
186
|
+
if (!activeObservers) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
let observer = activeObservers.get(changeEvent(property));
|
|
190
|
+
if (observer) {
|
|
191
|
+
observer.suspended = suspended;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function destroyObservers(target) {
|
|
195
|
+
if (SYNC_OBSERVERS.size > 0) SYNC_OBSERVERS.delete(target);
|
|
196
|
+
if (ASYNC_OBSERVERS.size > 0) ASYNC_OBSERVERS.delete(target);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export { ASYNC_OBSERVERS as A, SYNC_OBSERVERS as S, activateObserver as a, addObserver as b, revalidateObservers as c, flushSyncObservers as d, resumeObserverDeactivation as e, flushAsyncObservers as f, setObserverSuspended as g, removeObserver as r, suspendedObserverDeactivation as s };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { g as check } from './debug-render-tree-BLtnOSbb.js';
|
|
2
|
+
import { registerDestructor } from '../@glimmer/destroyable/index.js';
|
|
3
|
+
import { k as setInternalModifierManager } from './api-zh_k31vb.js';
|
|
4
|
+
import { v as valueForRef } from './reference-BshxG6wn.js';
|
|
5
|
+
import { c as createUpdatableTag } from './cache-BIlOoPA7.js';
|
|
6
|
+
|
|
7
|
+
class OnModifierState {
|
|
8
|
+
tag = createUpdatableTag();
|
|
9
|
+
element;
|
|
10
|
+
args;
|
|
11
|
+
listener = null;
|
|
12
|
+
constructor(element, args) {
|
|
13
|
+
this.element = element;
|
|
14
|
+
this.args = args;
|
|
15
|
+
registerDestructor(this, () => {
|
|
16
|
+
let {
|
|
17
|
+
element,
|
|
18
|
+
listener
|
|
19
|
+
} = this;
|
|
20
|
+
if (listener) {
|
|
21
|
+
let {
|
|
22
|
+
eventName,
|
|
23
|
+
callback,
|
|
24
|
+
options
|
|
25
|
+
} = listener;
|
|
26
|
+
removeEventListener(element, eventName, callback, options);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Update this.listener if needed
|
|
32
|
+
updateListener() {
|
|
33
|
+
let {
|
|
34
|
+
element,
|
|
35
|
+
args,
|
|
36
|
+
listener
|
|
37
|
+
} = this;
|
|
38
|
+
let arg0 = args.positional[0];
|
|
39
|
+
let eventName = check(arg0 ? valueForRef(arg0) : undefined);
|
|
40
|
+
let arg1 = args.positional[1];
|
|
41
|
+
let userProvidedCallback = check(arg1 ? valueForRef(arg1) : undefined);
|
|
42
|
+
let once = undefined;
|
|
43
|
+
let passive = undefined;
|
|
44
|
+
let capture = undefined;
|
|
45
|
+
{
|
|
46
|
+
let {
|
|
47
|
+
once: _once,
|
|
48
|
+
passive: _passive,
|
|
49
|
+
capture: _capture
|
|
50
|
+
} = args.named;
|
|
51
|
+
if (_once) {
|
|
52
|
+
once = valueForRef(_once);
|
|
53
|
+
}
|
|
54
|
+
if (_passive) {
|
|
55
|
+
passive = valueForRef(_passive);
|
|
56
|
+
}
|
|
57
|
+
if (_capture) {
|
|
58
|
+
capture = valueForRef(_capture);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
let shouldUpdate = false;
|
|
62
|
+
if (listener === null) {
|
|
63
|
+
shouldUpdate = true;
|
|
64
|
+
} else {
|
|
65
|
+
shouldUpdate = eventName !== listener.eventName || userProvidedCallback !== listener.userProvidedCallback || once !== listener.once || passive !== listener.passive || capture !== listener.capture;
|
|
66
|
+
}
|
|
67
|
+
let options = undefined;
|
|
68
|
+
|
|
69
|
+
// we want to handle both `true` and `false` because both have a meaning:
|
|
70
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=770208
|
|
71
|
+
if (shouldUpdate) {
|
|
72
|
+
if (once !== undefined || passive !== undefined || capture !== undefined) {
|
|
73
|
+
options = {
|
|
74
|
+
once,
|
|
75
|
+
passive,
|
|
76
|
+
capture
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (shouldUpdate) {
|
|
81
|
+
let callback = userProvidedCallback;
|
|
82
|
+
this.listener = {
|
|
83
|
+
eventName,
|
|
84
|
+
callback,
|
|
85
|
+
userProvidedCallback,
|
|
86
|
+
once,
|
|
87
|
+
passive,
|
|
88
|
+
capture,
|
|
89
|
+
options
|
|
90
|
+
};
|
|
91
|
+
if (listener) {
|
|
92
|
+
removeEventListener(element, listener.eventName, listener.callback, listener.options);
|
|
93
|
+
}
|
|
94
|
+
addEventListener(element, eventName, callback, options);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
let adds = 0;
|
|
99
|
+
let removes = 0;
|
|
100
|
+
function removeEventListener(element, eventName, callback, options) {
|
|
101
|
+
removes++;
|
|
102
|
+
element.removeEventListener(eventName, callback, options);
|
|
103
|
+
}
|
|
104
|
+
function addEventListener(element, eventName, callback, options) {
|
|
105
|
+
adds++;
|
|
106
|
+
element.addEventListener(eventName, callback, options);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
The `{{on}}` modifier lets you easily add event listeners (it uses
|
|
111
|
+
[EventTarget.addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
|
|
112
|
+
internally).
|
|
113
|
+
|
|
114
|
+
For example, if you'd like to run a function on your component when a `<button>`
|
|
115
|
+
in the components template is clicked you might do something like:
|
|
116
|
+
|
|
117
|
+
```app/components/like-post.hbs
|
|
118
|
+
<button {{on 'click' this.saveLike}}>Like this post!</button>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```app/components/like-post.js
|
|
122
|
+
import Component from '@glimmer/component';
|
|
123
|
+
import { action } from '@ember/object';
|
|
124
|
+
|
|
125
|
+
export default class LikePostComponent extends Component {
|
|
126
|
+
saveLike = () => {
|
|
127
|
+
// someone likes your post!
|
|
128
|
+
// better send a request off to your server...
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Arguments
|
|
134
|
+
|
|
135
|
+
`{{on}}` accepts two positional arguments, and a few named arguments.
|
|
136
|
+
|
|
137
|
+
The positional arguments are:
|
|
138
|
+
|
|
139
|
+
- `event` -- the name to use when calling `addEventListener`
|
|
140
|
+
- `callback` -- the function to be passed to `addEventListener`
|
|
141
|
+
|
|
142
|
+
The named arguments are:
|
|
143
|
+
|
|
144
|
+
- capture -- a `true` value indicates that events of this type will be dispatched
|
|
145
|
+
to the registered listener before being dispatched to any EventTarget beneath it
|
|
146
|
+
in the DOM tree.
|
|
147
|
+
- once -- indicates that the listener should be invoked at most once after being
|
|
148
|
+
added. If true, the listener would be automatically removed when invoked.
|
|
149
|
+
- passive -- if `true`, indicates that the function specified by listener will never
|
|
150
|
+
call preventDefault(). If a passive listener does call preventDefault(), the user
|
|
151
|
+
agent will do nothing other than generate a console warning. See
|
|
152
|
+
[Improving scrolling performance with passive listeners](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Improving_scrolling_performance_with_passive_listeners)
|
|
153
|
+
to learn more.
|
|
154
|
+
|
|
155
|
+
The callback function passed to `{{on}}` will receive any arguments that are passed
|
|
156
|
+
to the event handler. Most commonly this would be the `event` itself.
|
|
157
|
+
|
|
158
|
+
If you would like to pass additional arguments to the function you should use
|
|
159
|
+
the `{{fn}}` helper.
|
|
160
|
+
|
|
161
|
+
For example, in our example case above if you'd like to pass in the post that
|
|
162
|
+
was being liked when the button is clicked you could do something like:
|
|
163
|
+
|
|
164
|
+
```app/components/like-post.hbs
|
|
165
|
+
<button {{on 'click' (fn this.saveLike @post)}}>Like this post!</button>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
In this case, the `saveLike` function will receive two arguments: the click event
|
|
169
|
+
and the value of `@post`.
|
|
170
|
+
|
|
171
|
+
### Function Context
|
|
172
|
+
|
|
173
|
+
In the example above, we used an arrow function to ensure that `likePost` is
|
|
174
|
+
properly bound to the `items-list`, but let's explore what happens if we
|
|
175
|
+
left out the arrow function:
|
|
176
|
+
|
|
177
|
+
```app/components/like-post.js
|
|
178
|
+
import Component from '@glimmer/component';
|
|
179
|
+
|
|
180
|
+
export default class LikePostComponent extends Component {
|
|
181
|
+
saveLike() {
|
|
182
|
+
// ...snip...
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
In this example, when the button is clicked `saveLike` will be invoked,
|
|
188
|
+
it will **not** have access to the component instance. In other
|
|
189
|
+
words, it will have no `this` context, so please make sure your functions
|
|
190
|
+
are bound (via an arrow function or other means) before passing into `on`!
|
|
191
|
+
|
|
192
|
+
@method on
|
|
193
|
+
@public
|
|
194
|
+
*/
|
|
195
|
+
class OnModifierManager {
|
|
196
|
+
getDebugName() {
|
|
197
|
+
return 'on';
|
|
198
|
+
}
|
|
199
|
+
getDebugInstance() {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
get counters() {
|
|
203
|
+
return {
|
|
204
|
+
adds,
|
|
205
|
+
removes
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
create(_owner, element, _state, args) {
|
|
209
|
+
return new OnModifierState(element, args);
|
|
210
|
+
}
|
|
211
|
+
getTag({
|
|
212
|
+
tag
|
|
213
|
+
}) {
|
|
214
|
+
return tag;
|
|
215
|
+
}
|
|
216
|
+
install(state) {
|
|
217
|
+
state.updateListener();
|
|
218
|
+
}
|
|
219
|
+
update(state) {
|
|
220
|
+
state.updateListener();
|
|
221
|
+
}
|
|
222
|
+
getDestroyable(state) {
|
|
223
|
+
return state;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const on = setInternalModifierManager(new OnModifierManager(), {});
|
|
227
|
+
|
|
228
|
+
export { on as o };
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { C as CURRIED_MODIFIER, a as CURRIED_HELPER, b as CURRIED_COMPONENT } from './curried-BVwSNqpf.js';
|
|
2
|
+
import { a as $v0, b as $t1, c as $t0, d as $s1, $ as $s0, e as $sp, f as $fp, g as $ra, h as $pc } from './registers-DoamZwaG.js';
|
|
3
|
+
|
|
4
|
+
const SIGN_BIT = -536870913;
|
|
5
|
+
const MAX_INT = ~SIGN_BIT - 1;
|
|
6
|
+
const MIN_INT = ~MAX_INT;
|
|
7
|
+
function isHandle(value) {
|
|
8
|
+
return value >= 0;
|
|
9
|
+
}
|
|
10
|
+
function constants(...values) {
|
|
11
|
+
return [false, true, null, undefined, ...values];
|
|
12
|
+
}
|
|
13
|
+
function isSmallInt(value) {
|
|
14
|
+
return value % 1 === 0 && value <= MAX_INT && value >= MIN_INT;
|
|
15
|
+
}
|
|
16
|
+
function encodeNegative(num) {
|
|
17
|
+
return num & SIGN_BIT;
|
|
18
|
+
}
|
|
19
|
+
function decodeNegative(num) {
|
|
20
|
+
return num | ~SIGN_BIT;
|
|
21
|
+
}
|
|
22
|
+
function encodePositive(num) {
|
|
23
|
+
return ~num;
|
|
24
|
+
}
|
|
25
|
+
function decodePositive(num) {
|
|
26
|
+
return ~num;
|
|
27
|
+
}
|
|
28
|
+
function encodeHandle(num) {
|
|
29
|
+
return num;
|
|
30
|
+
}
|
|
31
|
+
function decodeHandle(num) {
|
|
32
|
+
return num;
|
|
33
|
+
}
|
|
34
|
+
function encodeImmediate(num) {
|
|
35
|
+
num |= 0;
|
|
36
|
+
return num < 0 ? encodeNegative(num) : encodePositive(num);
|
|
37
|
+
}
|
|
38
|
+
function decodeImmediate(num) {
|
|
39
|
+
num |= 0;
|
|
40
|
+
return num > SIGN_BIT ? decodePositive(num) : decodeNegative(num);
|
|
41
|
+
}
|
|
42
|
+
[1, -1].forEach(x => decodeImmediate(encodeImmediate(x)));
|
|
43
|
+
|
|
44
|
+
const VM_HELPER_OP = 16;
|
|
45
|
+
const VM_SET_NAMED_VARIABLES_OP = 17;
|
|
46
|
+
const VM_SET_BLOCKS_OP = 18;
|
|
47
|
+
const VM_SET_VARIABLE_OP = 19;
|
|
48
|
+
const VM_SET_BLOCK_OP = 20;
|
|
49
|
+
const VM_GET_VARIABLE_OP = 21;
|
|
50
|
+
const VM_GET_PROPERTY_OP = 22;
|
|
51
|
+
const VM_GET_BLOCK_OP = 23;
|
|
52
|
+
const VM_SPREAD_BLOCK_OP = 24;
|
|
53
|
+
const VM_HAS_BLOCK_OP = 25;
|
|
54
|
+
const VM_HAS_BLOCK_PARAMS_OP = 26;
|
|
55
|
+
const VM_CONCAT_OP = 27;
|
|
56
|
+
const VM_CONSTANT_OP = 28;
|
|
57
|
+
const VM_CONSTANT_REFERENCE_OP = 29;
|
|
58
|
+
const VM_PRIMITIVE_OP = 30;
|
|
59
|
+
const VM_PRIMITIVE_REFERENCE_OP = 31;
|
|
60
|
+
const VM_DUP_OP = 33;
|
|
61
|
+
const VM_POP_OP = 34;
|
|
62
|
+
const VM_LOAD_OP = 35;
|
|
63
|
+
const VM_FETCH_OP = 36;
|
|
64
|
+
const VM_ROOT_SCOPE_OP = 37;
|
|
65
|
+
const VM_VIRTUAL_ROOT_SCOPE_OP = 38;
|
|
66
|
+
const VM_CHILD_SCOPE_OP = 39;
|
|
67
|
+
const VM_POP_SCOPE_OP = 40;
|
|
68
|
+
const VM_TEXT_OP = 41;
|
|
69
|
+
const VM_COMMENT_OP = 42;
|
|
70
|
+
const VM_APPEND_HTML_OP = 43;
|
|
71
|
+
const VM_APPEND_SAFE_HTML_OP = 44;
|
|
72
|
+
const VM_APPEND_DOCUMENT_FRAGMENT_OP = 45;
|
|
73
|
+
const VM_APPEND_NODE_OP = 46;
|
|
74
|
+
const VM_APPEND_TEXT_OP = 47;
|
|
75
|
+
const VM_OPEN_ELEMENT_OP = 48;
|
|
76
|
+
const VM_OPEN_DYNAMIC_ELEMENT_OP = 49;
|
|
77
|
+
const VM_PUSH_REMOTE_ELEMENT_OP = 50;
|
|
78
|
+
const VM_STATIC_ATTR_OP = 51;
|
|
79
|
+
const VM_DYNAMIC_ATTR_OP = 52;
|
|
80
|
+
const VM_COMPONENT_ATTR_OP = 53;
|
|
81
|
+
const VM_FLUSH_ELEMENT_OP = 54;
|
|
82
|
+
const VM_CLOSE_ELEMENT_OP = 55;
|
|
83
|
+
const VM_POP_REMOTE_ELEMENT_OP = 56;
|
|
84
|
+
const VM_MODIFIER_OP = 57;
|
|
85
|
+
const VM_BIND_DYNAMIC_SCOPE_OP = 58;
|
|
86
|
+
const VM_PUSH_DYNAMIC_SCOPE_OP = 59;
|
|
87
|
+
const VM_POP_DYNAMIC_SCOPE_OP = 60;
|
|
88
|
+
const VM_COMPILE_BLOCK_OP = 61;
|
|
89
|
+
const VM_PUSH_BLOCK_SCOPE_OP = 62;
|
|
90
|
+
const VM_PUSH_SYMBOL_TABLE_OP = 63;
|
|
91
|
+
const VM_INVOKE_YIELD_OP = 64;
|
|
92
|
+
const VM_JUMP_IF_OP = 65;
|
|
93
|
+
const VM_JUMP_UNLESS_OP = 66;
|
|
94
|
+
const VM_JUMP_EQ_OP = 67;
|
|
95
|
+
const VM_ASSERT_SAME_OP = 68;
|
|
96
|
+
const VM_ENTER_OP = 69;
|
|
97
|
+
const VM_EXIT_OP = 70;
|
|
98
|
+
const VM_TO_BOOLEAN_OP = 71;
|
|
99
|
+
const VM_ENTER_LIST_OP = 72;
|
|
100
|
+
const VM_EXIT_LIST_OP = 73;
|
|
101
|
+
const VM_ITERATE_OP = 74;
|
|
102
|
+
const VM_MAIN_OP = 75;
|
|
103
|
+
const VM_CONTENT_TYPE_OP = 76;
|
|
104
|
+
const VM_CURRY_OP = 77;
|
|
105
|
+
const VM_PUSH_COMPONENT_DEFINITION_OP = 78;
|
|
106
|
+
const VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP = 79;
|
|
107
|
+
const VM_RESOLVE_DYNAMIC_COMPONENT_OP = 80;
|
|
108
|
+
const VM_RESOLVE_CURRIED_COMPONENT_OP = 81;
|
|
109
|
+
const VM_PUSH_ARGS_OP = 82;
|
|
110
|
+
const VM_PUSH_EMPTY_ARGS_OP = 83;
|
|
111
|
+
const VM_PREPARE_ARGS_OP = 85;
|
|
112
|
+
const VM_CAPTURE_ARGS_OP = 86;
|
|
113
|
+
const VM_CREATE_COMPONENT_OP = 87;
|
|
114
|
+
const VM_REGISTER_COMPONENT_DESTRUCTOR_OP = 88;
|
|
115
|
+
const VM_PUT_COMPONENT_OPERATIONS_OP = 89;
|
|
116
|
+
const VM_GET_COMPONENT_SELF_OP = 90;
|
|
117
|
+
const VM_GET_COMPONENT_TAG_NAME_OP = 91;
|
|
118
|
+
const VM_GET_COMPONENT_LAYOUT_OP = 92;
|
|
119
|
+
const VM_POPULATE_LAYOUT_OP = 95;
|
|
120
|
+
const VM_INVOKE_COMPONENT_LAYOUT_OP = 96;
|
|
121
|
+
const VM_BEGIN_COMPONENT_TRANSACTION_OP = 97;
|
|
122
|
+
const VM_COMMIT_COMPONENT_TRANSACTION_OP = 98;
|
|
123
|
+
const VM_DID_CREATE_ELEMENT_OP = 99;
|
|
124
|
+
const VM_DID_RENDER_LAYOUT_OP = 100;
|
|
125
|
+
const VM_DEBUGGER_OP = 103;
|
|
126
|
+
const VM_STATIC_COMPONENT_ATTR_OP = 105;
|
|
127
|
+
const VM_DYNAMIC_CONTENT_TYPE_OP = 106;
|
|
128
|
+
const VM_DYNAMIC_HELPER_OP = 107;
|
|
129
|
+
const VM_DYNAMIC_MODIFIER_OP = 108;
|
|
130
|
+
const VM_IF_INLINE_OP = 109;
|
|
131
|
+
const VM_NOT_OP = 110;
|
|
132
|
+
const VM_GET_DYNAMIC_VAR_OP = 111;
|
|
133
|
+
const VM_LOG_OP = 112;
|
|
134
|
+
const VM_SYSCALL_SIZE = 113;
|
|
135
|
+
|
|
136
|
+
function decodeCurry(curry) {
|
|
137
|
+
switch (curry) {
|
|
138
|
+
case CURRIED_COMPONENT:
|
|
139
|
+
return 'component';
|
|
140
|
+
case CURRIED_HELPER:
|
|
141
|
+
return 'helper';
|
|
142
|
+
case CURRIED_MODIFIER:
|
|
143
|
+
return 'modifier';
|
|
144
|
+
default:
|
|
145
|
+
throw Error(`Unexpected curry value: ${curry}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function decodeRegister(register) {
|
|
149
|
+
switch (register) {
|
|
150
|
+
case $pc:
|
|
151
|
+
return '$pc';
|
|
152
|
+
case $ra:
|
|
153
|
+
return '$ra';
|
|
154
|
+
case $fp:
|
|
155
|
+
return '$fp';
|
|
156
|
+
case $sp:
|
|
157
|
+
return '$sp';
|
|
158
|
+
case $s0:
|
|
159
|
+
return '$s0';
|
|
160
|
+
case $s1:
|
|
161
|
+
return '$s1';
|
|
162
|
+
case $t0:
|
|
163
|
+
return '$t0';
|
|
164
|
+
case $t1:
|
|
165
|
+
return '$t1';
|
|
166
|
+
case $v0:
|
|
167
|
+
return '$v0';
|
|
168
|
+
default:
|
|
169
|
+
return `$bug${register}`;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function decodePrimitive(primitive, constants) {
|
|
173
|
+
if (primitive >= 0) {
|
|
174
|
+
return constants.getValue(decodeHandle(primitive));
|
|
175
|
+
}
|
|
176
|
+
return decodeImmediate(primitive);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const todo = ({
|
|
180
|
+
label,
|
|
181
|
+
value
|
|
182
|
+
}) => ['error:operand', value, {
|
|
183
|
+
label
|
|
184
|
+
}];
|
|
185
|
+
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
187
|
+
|
|
188
|
+
class Disassembler {
|
|
189
|
+
static build(builder) {
|
|
190
|
+
return builder(new Disassembler()).#disms;
|
|
191
|
+
}
|
|
192
|
+
#disms;
|
|
193
|
+
constructor() {
|
|
194
|
+
this.#disms = {};
|
|
195
|
+
}
|
|
196
|
+
addNullable(names, dism) {
|
|
197
|
+
for (const name of names) {
|
|
198
|
+
this.#disms[name] = dism;
|
|
199
|
+
this.#disms[`${name}?`] = dism;
|
|
200
|
+
}
|
|
201
|
+
return this;
|
|
202
|
+
}
|
|
203
|
+
add(names, dism) {
|
|
204
|
+
const add = (name, dism) => this.#disms[name] = dism;
|
|
205
|
+
for (const name of names) {
|
|
206
|
+
add(name, dism);
|
|
207
|
+
}
|
|
208
|
+
return this;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
Disassembler.build(d => {
|
|
212
|
+
return d.add(['imm/u32', 'imm/i32', 'imm/u32{todo}', 'imm/i32{todo}'], ({
|
|
213
|
+
value
|
|
214
|
+
}) => ['number', value]).add(['const/i32[]'], ({
|
|
215
|
+
value,
|
|
216
|
+
constants
|
|
217
|
+
}) => ['array', constants.getArray(value), {
|
|
218
|
+
kind: Number
|
|
219
|
+
}]).add(['const/bool'], ({
|
|
220
|
+
value
|
|
221
|
+
}) => ['boolean', !!value]).add(['imm/bool'], ({
|
|
222
|
+
value,
|
|
223
|
+
constants
|
|
224
|
+
}) => ['boolean', constants.getValue(decodeHandle(value))]).add(['handle'], ({
|
|
225
|
+
constants,
|
|
226
|
+
value
|
|
227
|
+
}) => ['constant', constants.getValue(value)]).add(['handle/block'], ({
|
|
228
|
+
value,
|
|
229
|
+
heap
|
|
230
|
+
}) => ['instruction', heap.getaddr(value)]).add(['imm/pc'], ({
|
|
231
|
+
value
|
|
232
|
+
}) => ['instruction', value]).add(['const/any[]'], ({
|
|
233
|
+
value,
|
|
234
|
+
constants
|
|
235
|
+
}) => ['array', constants.getArray(value)]).add(['const/primitive'], ({
|
|
236
|
+
value,
|
|
237
|
+
constants
|
|
238
|
+
}) => ['primitive', decodePrimitive(value, constants)]).add(['register'], ({
|
|
239
|
+
value
|
|
240
|
+
}) => ['register', decodeRegister(value)]).add(['const/any'], ({
|
|
241
|
+
value,
|
|
242
|
+
constants
|
|
243
|
+
}) => ['dynamic', constants.getValue(value)]).add(['variable'], ({
|
|
244
|
+
value,
|
|
245
|
+
meta
|
|
246
|
+
}) => {
|
|
247
|
+
return ['variable', value, {
|
|
248
|
+
name: meta?.symbols.lexical?.at(value) ?? null
|
|
249
|
+
}];
|
|
250
|
+
}).add(['register/instruction'], ({
|
|
251
|
+
value
|
|
252
|
+
}) => ['instruction', value]).add(['imm/enum<curry>'], ({
|
|
253
|
+
value
|
|
254
|
+
}) => ['enum<curry>', decodeCurry(value)]).addNullable(['const/str'], ({
|
|
255
|
+
value,
|
|
256
|
+
constants
|
|
257
|
+
}) => ['string', constants.getValue(value)]).addNullable(['const/str[]'], ({
|
|
258
|
+
value,
|
|
259
|
+
constants
|
|
260
|
+
}) => ['array', constants.getArray(value), {
|
|
261
|
+
kind: String
|
|
262
|
+
}]).add(['imm/block:handle'], todo).add(['const/definition'], todo).add(['const/fn'], todo).add(['instruction/relative'], ({
|
|
263
|
+
value,
|
|
264
|
+
offset
|
|
265
|
+
}) => ['instruction', offset + value]).add(['register/sN'], todo).add(['register/stack'], todo).add(['register/tN'], todo).add(['register/v0'], todo);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
const VM_PUSH_FRAME_OP = 0;
|
|
269
|
+
const VM_POP_FRAME_OP = 1;
|
|
270
|
+
const VM_INVOKE_VIRTUAL_OP = 2;
|
|
271
|
+
const VM_INVOKE_STATIC_OP = 3;
|
|
272
|
+
const VM_JUMP_OP = 4;
|
|
273
|
+
const VM_RETURN_OP = 5;
|
|
274
|
+
const VM_RETURN_TO_OP = 6;
|
|
275
|
+
const VM_MACHINE_SIZE = 7;
|
|
276
|
+
function isMachineOp(value) {
|
|
277
|
+
return value >= 0 && value <= 15;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* This file is generated by build/debug.js */
|
|
281
|
+
|
|
282
|
+
new Array(VM_SYSCALL_SIZE).fill(null);
|
|
283
|
+
new Array(VM_MACHINE_SIZE).fill(null);
|
|
284
|
+
|
|
285
|
+
export { VM_PUSH_EMPTY_ARGS_OP as $, VM_BIND_DYNAMIC_SCOPE_OP as A, VM_ENTER_OP as B, VM_EXIT_OP as C, VM_PUSH_SYMBOL_TABLE_OP as D, VM_PUSH_BLOCK_SCOPE_OP as E, VM_COMPILE_BLOCK_OP as F, VM_INVOKE_YIELD_OP as G, VM_JUMP_IF_OP as H, VM_JUMP_UNLESS_OP as I, VM_JUMP_EQ_OP as J, VM_TO_BOOLEAN_OP as K, VM_TEXT_OP as L, VM_COMMENT_OP as M, VM_OPEN_ELEMENT_OP as N, VM_OPEN_DYNAMIC_ELEMENT_OP as O, VM_PUSH_REMOTE_ELEMENT_OP as P, VM_POP_REMOTE_ELEMENT_OP as Q, VM_FLUSH_ELEMENT_OP as R, VM_CLOSE_ELEMENT_OP as S, VM_MODIFIER_OP as T, VM_DYNAMIC_MODIFIER_OP as U, VM_MAIN_OP as V, VM_STATIC_ATTR_OP as W, VM_DYNAMIC_ATTR_OP as X, VM_PUSH_COMPONENT_DEFINITION_OP as Y, VM_RESOLVE_DYNAMIC_COMPONENT_OP as Z, VM_PUSH_ARGS_OP as _, VM_CONTENT_TYPE_OP as a, VM_CAPTURE_ARGS_OP as a0, VM_PREPARE_ARGS_OP as a1, VM_CREATE_COMPONENT_OP as a2, VM_REGISTER_COMPONENT_DESTRUCTOR_OP as a3, VM_BEGIN_COMPONENT_TRANSACTION_OP as a4, VM_PUT_COMPONENT_OPERATIONS_OP as a5, VM_COMPONENT_ATTR_OP as a6, VM_STATIC_COMPONENT_ATTR_OP as a7, VM_DID_CREATE_ELEMENT_OP as a8, VM_GET_COMPONENT_SELF_OP as a9, VM_LOG_OP as aA, VM_DYNAMIC_CONTENT_TYPE_OP as aB, VM_ENTER_LIST_OP as aC, VM_EXIT_LIST_OP as aD, VM_ITERATE_OP as aE, VM_RETURN_TO_OP as aF, VM_RETURN_OP as aG, VM_JUMP_OP as aH, VM_INVOKE_VIRTUAL_OP as aI, VM_POP_FRAME_OP as aJ, VM_PUSH_FRAME_OP as aK, constants as aL, encodeHandle as aM, isMachineOp as aN, isSmallInt as aO, encodeImmediate as aP, VM_GET_COMPONENT_TAG_NAME_OP as aa, VM_GET_COMPONENT_LAYOUT_OP as ab, VM_POPULATE_LAYOUT_OP as ac, VM_VIRTUAL_ROOT_SCOPE_OP as ad, VM_SET_NAMED_VARIABLES_OP as ae, VM_SET_BLOCKS_OP as af, VM_INVOKE_COMPONENT_LAYOUT_OP as ag, VM_DID_RENDER_LAYOUT_OP as ah, VM_COMMIT_COMPONENT_TRANSACTION_OP as ai, VM_DEBUGGER_OP as aj, VM_CURRY_OP as ak, VM_DYNAMIC_HELPER_OP as al, VM_HELPER_OP as am, VM_GET_VARIABLE_OP as an, VM_SET_VARIABLE_OP as ao, VM_SET_BLOCK_OP as ap, VM_ROOT_SCOPE_OP as aq, VM_GET_PROPERTY_OP as ar, VM_GET_BLOCK_OP as as, VM_SPREAD_BLOCK_OP as at, VM_HAS_BLOCK_OP as au, VM_HAS_BLOCK_PARAMS_OP as av, VM_CONCAT_OP as aw, VM_IF_INLINE_OP as ax, VM_NOT_OP as ay, VM_GET_DYNAMIC_VAR_OP as az, VM_ASSERT_SAME_OP as b, VM_APPEND_HTML_OP as c, VM_APPEND_TEXT_OP as d, VM_RESOLVE_CURRIED_COMPONENT_OP as e, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP as f, VM_APPEND_SAFE_HTML_OP as g, VM_APPEND_DOCUMENT_FRAGMENT_OP as h, VM_APPEND_NODE_OP as i, VM_INVOKE_STATIC_OP as j, VM_SYSCALL_SIZE as k, VM_CHILD_SCOPE_OP as l, VM_POP_SCOPE_OP as m, VM_PUSH_DYNAMIC_SCOPE_OP as n, VM_POP_DYNAMIC_SCOPE_OP as o, VM_CONSTANT_OP as p, decodeHandle as q, VM_CONSTANT_REFERENCE_OP as r, VM_PRIMITIVE_OP as s, isHandle as t, decodeImmediate as u, VM_PRIMITIVE_REFERENCE_OP as v, VM_DUP_OP as w, VM_POP_OP as x, VM_LOAD_OP as y, VM_FETCH_OP as z };
|