discourse-ember-source 3.5.1.1 → 3.5.1.2
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.
- checksums.yaml +4 -4
- data/lib/ember/version.rb +1 -1
- metadata +2 -740
- data/.gitignore +0 -9
- data/.travis.yml +0 -5
- data/Gemfile +0 -6
- data/LICENSE.txt +0 -21
- data/README +0 -18
- data/README.md +0 -39
- data/Rakefile +0 -27
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/discourse-ember-source-3.5.1.0.gem +0 -0
- data/dist/ember-all.debug.map +0 -1
- data/dist/ember-template-compiler.map +0 -1
- data/dist/ember-testing.map +0 -1
- data/dist/ember-tests.map +0 -1
- data/dist/ember-tests.prod.map +0 -1
- data/dist/ember.debug.map +0 -1
- data/dist/ember.min.map +0 -1
- data/dist/ember.prod.map +0 -1
- data/dist/es/@ember/application/globals-resolver.js +0 -425
- data/dist/es/@ember/application/index.js +0 -3
- data/dist/es/@ember/application/instance.js +0 -513
- data/dist/es/@ember/application/lib/application.js +0 -1139
- data/dist/es/@ember/application/lib/lazy_load.js +0 -69
- data/dist/es/@ember/application/lib/validate-type.js +0 -24
- data/dist/es/@ember/application/tests/application_instance_test.js +0 -230
- data/dist/es/@ember/application/tests/application_test.js +0 -470
- data/dist/es/@ember/application/tests/bootstrap-test.js +0 -28
- data/dist/es/@ember/application/tests/dependency_injection/custom_resolver_test.js +0 -32
- data/dist/es/@ember/application/tests/dependency_injection/default_resolver_test.js +0 -363
- data/dist/es/@ember/application/tests/dependency_injection/normalization_test.js +0 -70
- data/dist/es/@ember/application/tests/dependency_injection/to_string_test.js +0 -71
- data/dist/es/@ember/application/tests/dependency_injection_test.js +0 -93
- data/dist/es/@ember/application/tests/initializers_test.js +0 -391
- data/dist/es/@ember/application/tests/instance_initializers_test.js +0 -395
- data/dist/es/@ember/application/tests/lazy_load_test.js +0 -79
- data/dist/es/@ember/application/tests/logging_test.js +0 -179
- data/dist/es/@ember/application/tests/readiness_test.js +0 -138
- data/dist/es/@ember/application/tests/reset_test.js +0 -185
- data/dist/es/@ember/application/tests/visit_test.js +0 -783
- data/dist/es/@ember/canary-features/index.js +0 -76
- data/dist/es/@ember/controller/index.js +0 -50
- data/dist/es/@ember/controller/lib/controller_mixin.js +0 -42
- data/dist/es/@ember/controller/tests/controller_test.js +0 -209
- data/dist/es/@ember/debug/index.js +0 -264
- data/dist/es/@ember/debug/lib/deprecate.js +0 -198
- data/dist/es/@ember/debug/lib/handlers.js +0 -22
- data/dist/es/@ember/debug/lib/testing.js +0 -7
- data/dist/es/@ember/debug/lib/warn.js +0 -107
- data/dist/es/@ember/debug/tests/handlers-test.js +0 -144
- data/dist/es/@ember/debug/tests/main_test.js +0 -444
- data/dist/es/@ember/deprecated-features/index.js +0 -21
- data/dist/es/@ember/engine/index.js +0 -532
- data/dist/es/@ember/engine/instance.js +0 -228
- data/dist/es/@ember/engine/lib/engine-parent.js +0 -32
- data/dist/es/@ember/engine/tests/engine_initializers_test.js +0 -366
- data/dist/es/@ember/engine/tests/engine_instance_initializers_test.js +0 -409
- data/dist/es/@ember/engine/tests/engine_instance_test.js +0 -115
- data/dist/es/@ember/engine/tests/engine_parent_test.js +0 -20
- data/dist/es/@ember/engine/tests/engine_test.js +0 -121
- data/dist/es/@ember/error/index.js +0 -36
- data/dist/es/@ember/error/tests/index_test.js +0 -19
- data/dist/es/@ember/instrumentation/index.js +0 -240
- data/dist/es/@ember/instrumentation/tests/index-test.js +0 -214
- data/dist/es/@ember/map/index.js +0 -218
- data/dist/es/@ember/map/lib/ordered-set.js +0 -186
- data/dist/es/@ember/map/lib/utils.js +0 -29
- data/dist/es/@ember/map/tests/map_test.js +0 -578
- data/dist/es/@ember/map/with-default.js +0 -87
- data/dist/es/@ember/object/computed.js +0 -35
- data/dist/es/@ember/object/lib/computed/computed_macros.js +0 -742
- data/dist/es/@ember/object/lib/computed/reduce_computed_macros.js +0 -894
- data/dist/es/@ember/object/tests/computed/computed_macros_test.js +0 -533
- data/dist/es/@ember/object/tests/computed/reduce_computed_macros_test.js +0 -2243
- data/dist/es/@ember/polyfills/index.js +0 -3
- data/dist/es/@ember/polyfills/lib/assign.js +0 -43
- data/dist/es/@ember/polyfills/lib/merge.js +0 -35
- data/dist/es/@ember/polyfills/tests/assign_test.js +0 -64
- data/dist/es/@ember/runloop/index.js +0 -749
- data/dist/es/@ember/runloop/tests/debounce_test.js +0 -87
- data/dist/es/@ember/runloop/tests/later_test.js +0 -264
- data/dist/es/@ember/runloop/tests/next_test.js +0 -56
- data/dist/es/@ember/runloop/tests/once_test.js +0 -62
- data/dist/es/@ember/runloop/tests/onerror_test.js +0 -59
- data/dist/es/@ember/runloop/tests/run_bind_test.js +0 -59
- data/dist/es/@ember/runloop/tests/run_test.js +0 -28
- data/dist/es/@ember/runloop/tests/schedule_test.js +0 -86
- data/dist/es/@ember/runloop/tests/sync_test.js +0 -32
- data/dist/es/@ember/runloop/tests/unwind_test.js +0 -54
- data/dist/es/@ember/service/index.js +0 -57
- data/dist/es/@ember/string/index.js +0 -362
- data/dist/es/@ember/string/lib/string_registry.js +0 -13
- data/dist/es/@ember/string/tests/camelize_test.js +0 -53
- data/dist/es/@ember/string/tests/capitalize_test.js +0 -58
- data/dist/es/@ember/string/tests/classify_test.js +0 -79
- data/dist/es/@ember/string/tests/dasherize_test.js +0 -57
- data/dist/es/@ember/string/tests/decamelize_test.js +0 -51
- data/dist/es/@ember/string/tests/loc_test.js +0 -76
- data/dist/es/@ember/string/tests/underscore_test.js +0 -51
- data/dist/es/@ember/string/tests/w_test.js +0 -39
- data/dist/es/@glimmer/compiler.js +0 -1226
- data/dist/es/@glimmer/encoder.js +0 -39
- data/dist/es/@glimmer/low-level.js +0 -82
- data/dist/es/@glimmer/node.js +0 -112
- data/dist/es/@glimmer/opcode-compiler.js +0 -1999
- data/dist/es/@glimmer/program.js +0 -405
- data/dist/es/@glimmer/reference.js +0 -478
- data/dist/es/@glimmer/runtime.js +0 -4086
- data/dist/es/@glimmer/syntax.js +0 -1424
- data/dist/es/@glimmer/util.js +0 -189
- data/dist/es/@glimmer/vm.js +0 -27
- data/dist/es/@glimmer/wire-format.js +0 -56
- data/dist/es/backburner.js +0 -936
- data/dist/es/container/index.js +0 -8
- data/dist/es/container/lib/container.js +0 -437
- data/dist/es/container/lib/registry.js +0 -646
- data/dist/es/container/tests/container_test.js +0 -872
- data/dist/es/container/tests/owner_test.js +0 -20
- data/dist/es/container/tests/registry_test.js +0 -943
- data/dist/es/dag-map.js +0 -209
- data/dist/es/ember-browser-environment/index.js +0 -8
- data/dist/es/ember-browser-environment/lib/has-dom.js +0 -19
- data/dist/es/ember-console/index.js +0 -177
- data/dist/es/ember-environment/index.js +0 -3
- data/dist/es/ember-environment/lib/context.js +0 -20
- data/dist/es/ember-environment/lib/env.js +0 -185
- data/dist/es/ember-environment/lib/global.js +0 -14
- data/dist/es/ember-error-handling/index.js +0 -22
- data/dist/es/ember-extension-support/index.js +0 -2
- data/dist/es/ember-extension-support/lib/container_debug_adapter.js +0 -99
- data/dist/es/ember-extension-support/lib/data_adapter.js +0 -493
- data/dist/es/ember-extension-support/tests/container_debug_adapter_test.js +0 -73
- data/dist/es/ember-extension-support/tests/data_adapter_test.js +0 -301
- data/dist/es/ember-glimmer/index.js +0 -286
- data/dist/es/ember-glimmer/lib/compile-time-lookup.js +0 -37
- data/dist/es/ember-glimmer/lib/component-managers/abstract.js +0 -49
- data/dist/es/ember-glimmer/lib/component-managers/curly.js +0 -395
- data/dist/es/ember-glimmer/lib/component-managers/custom.js +0 -145
- data/dist/es/ember-glimmer/lib/component-managers/definition-state.js +0 -1
- data/dist/es/ember-glimmer/lib/component-managers/mount.js +0 -103
- data/dist/es/ember-glimmer/lib/component-managers/outlet.js +0 -114
- data/dist/es/ember-glimmer/lib/component-managers/render.js +0 -112
- data/dist/es/ember-glimmer/lib/component-managers/root.js +0 -74
- data/dist/es/ember-glimmer/lib/component-managers/template-only.js +0 -46
- data/dist/es/ember-glimmer/lib/component.js +0 -633
- data/dist/es/ember-glimmer/lib/components/checkbox.js +0 -57
- data/dist/es/ember-glimmer/lib/components/link-to.js +0 -777
- data/dist/es/ember-glimmer/lib/components/text_area.js +0 -236
- data/dist/es/ember-glimmer/lib/components/text_field.js +0 -145
- data/dist/es/ember-glimmer/lib/dom.js +0 -3
- data/dist/es/ember-glimmer/lib/environment.js +0 -102
- data/dist/es/ember-glimmer/lib/helper.js +0 -128
- data/dist/es/ember-glimmer/lib/helpers/-class.js +0 -23
- data/dist/es/ember-glimmer/lib/helpers/-html-safe.js +0 -9
- data/dist/es/ember-glimmer/lib/helpers/-input-type.js +0 -11
- data/dist/es/ember-glimmer/lib/helpers/-normalize-class.js +0 -22
- data/dist/es/ember-glimmer/lib/helpers/action.js +0 -360
- data/dist/es/ember-glimmer/lib/helpers/component.js +0 -135
- data/dist/es/ember-glimmer/lib/helpers/concat.js +0 -38
- data/dist/es/ember-glimmer/lib/helpers/each-in.js +0 -126
- data/dist/es/ember-glimmer/lib/helpers/get.js +0 -100
- data/dist/es/ember-glimmer/lib/helpers/hash.js +0 -44
- data/dist/es/ember-glimmer/lib/helpers/if-unless.js +0 -142
- data/dist/es/ember-glimmer/lib/helpers/loc.js +0 -40
- data/dist/es/ember-glimmer/lib/helpers/log.js +0 -25
- data/dist/es/ember-glimmer/lib/helpers/mut.js +0 -107
- data/dist/es/ember-glimmer/lib/helpers/query-param.js +0 -31
- data/dist/es/ember-glimmer/lib/helpers/readonly.js +0 -104
- data/dist/es/ember-glimmer/lib/helpers/unbound.js +0 -36
- data/dist/es/ember-glimmer/lib/modifiers/action.js +0 -185
- data/dist/es/ember-glimmer/lib/protocol-for-url.js +0 -48
- data/dist/es/ember-glimmer/lib/renderer.js +0 -371
- data/dist/es/ember-glimmer/lib/resolver.js +0 -290
- data/dist/es/ember-glimmer/lib/setup-registry.js +0 -77
- data/dist/es/ember-glimmer/lib/syntax.js +0 -73
- data/dist/es/ember-glimmer/lib/syntax/-text-area.js +0 -8
- data/dist/es/ember-glimmer/lib/syntax/input.js +0 -173
- data/dist/es/ember-glimmer/lib/syntax/let.js +0 -50
- data/dist/es/ember-glimmer/lib/syntax/mount.js +0 -101
- data/dist/es/ember-glimmer/lib/syntax/outlet.js +0 -120
- data/dist/es/ember-glimmer/lib/syntax/render.js +0 -140
- data/dist/es/ember-glimmer/lib/syntax/utils.js +0 -6
- data/dist/es/ember-glimmer/lib/template-compiler.js +0 -7
- data/dist/es/ember-glimmer/lib/template.js +0 -16
- data/dist/es/ember-glimmer/lib/template_registry.js +0 -18
- data/dist/es/ember-glimmer/lib/templates/component.js +0 -2
- data/dist/es/ember-glimmer/lib/templates/empty.js +0 -2
- data/dist/es/ember-glimmer/lib/templates/link-to.js +0 -2
- data/dist/es/ember-glimmer/lib/templates/outlet.js +0 -2
- data/dist/es/ember-glimmer/lib/templates/root.js +0 -2
- data/dist/es/ember-glimmer/lib/utils/bindings.js +0 -180
- data/dist/es/ember-glimmer/lib/utils/curly-component-state-bucket.js +0 -36
- data/dist/es/ember-glimmer/lib/utils/custom-component-manager.js +0 -20
- data/dist/es/ember-glimmer/lib/utils/debug-stack.js +0 -57
- data/dist/es/ember-glimmer/lib/utils/iterable.js +0 -358
- data/dist/es/ember-glimmer/lib/utils/outlet.js +0 -89
- data/dist/es/ember-glimmer/lib/utils/process-args.js +0 -40
- data/dist/es/ember-glimmer/lib/utils/references.js +0 -325
- data/dist/es/ember-glimmer/lib/utils/serialization-first-node-helpers.js +0 -1
- data/dist/es/ember-glimmer/lib/utils/string.js +0 -98
- data/dist/es/ember-glimmer/lib/utils/to-bool.js +0 -9
- data/dist/es/ember-glimmer/lib/views/outlet.js +0 -71
- data/dist/es/ember-glimmer/tests/integration/application/actions-test.js +0 -107
- data/dist/es/ember-glimmer/tests/integration/application/engine-test.js +0 -912
- data/dist/es/ember-glimmer/tests/integration/application/rendering-test.js +0 -530
- data/dist/es/ember-glimmer/tests/integration/components/angle-bracket-invocation-test.js +0 -852
- data/dist/es/ember-glimmer/tests/integration/components/append-test.js +0 -742
- data/dist/es/ember-glimmer/tests/integration/components/attribute-bindings-test.js +0 -999
- data/dist/es/ember-glimmer/tests/integration/components/attrs-lookup-test.js +0 -268
- data/dist/es/ember-glimmer/tests/integration/components/class-bindings-test.js +0 -849
- data/dist/es/ember-glimmer/tests/integration/components/contextual-components-test.js +0 -1493
- data/dist/es/ember-glimmer/tests/integration/components/curly-components-test.js +0 -3705
- data/dist/es/ember-glimmer/tests/integration/components/destroy-test.js +0 -33
- data/dist/es/ember-glimmer/tests/integration/components/dynamic-components-test.js +0 -896
- data/dist/es/ember-glimmer/tests/integration/components/error-handling-test.js +0 -164
- data/dist/es/ember-glimmer/tests/integration/components/fragment-components-test.js +0 -285
- data/dist/es/ember-glimmer/tests/integration/components/instrumentation-compile-test.js +0 -108
- data/dist/es/ember-glimmer/tests/integration/components/instrumentation-test.js +0 -157
- data/dist/es/ember-glimmer/tests/integration/components/life-cycle-test.js +0 -1653
- data/dist/es/ember-glimmer/tests/integration/components/link-to-test.js +0 -218
- data/dist/es/ember-glimmer/tests/integration/components/local-lookup-test.js +0 -414
- data/dist/es/ember-glimmer/tests/integration/components/namespaced-lookup-test.js +0 -185
- data/dist/es/ember-glimmer/tests/integration/components/render-to-element-test.js +0 -0
- data/dist/es/ember-glimmer/tests/integration/components/target-action-test.js +0 -779
- data/dist/es/ember-glimmer/tests/integration/components/template-only-components-test.js +0 -225
- data/dist/es/ember-glimmer/tests/integration/components/to-string-test.js +0 -27
- data/dist/es/ember-glimmer/tests/integration/components/utils-test.js +0 -401
- data/dist/es/ember-glimmer/tests/integration/components/web-component-fallback-test.js +0 -35
- data/dist/es/ember-glimmer/tests/integration/components/will-destroy-element-hook-test.js +0 -40
- data/dist/es/ember-glimmer/tests/integration/content-test.js +0 -1759
- data/dist/es/ember-glimmer/tests/integration/custom-component-manager-test.js +0 -508
- data/dist/es/ember-glimmer/tests/integration/event-dispatcher-test.js +0 -607
- data/dist/es/ember-glimmer/tests/integration/helpers/-class-test.js +0 -76
- data/dist/es/ember-glimmer/tests/integration/helpers/closure-action-test.js +0 -1240
- data/dist/es/ember-glimmer/tests/integration/helpers/concat-test.js +0 -106
- data/dist/es/ember-glimmer/tests/integration/helpers/custom-helper-test.js +0 -672
- data/dist/es/ember-glimmer/tests/integration/helpers/element-action-test.js +0 -1595
- data/dist/es/ember-glimmer/tests/integration/helpers/get-test.js +0 -618
- data/dist/es/ember-glimmer/tests/integration/helpers/hash-test.js +0 -188
- data/dist/es/ember-glimmer/tests/integration/helpers/if-unless-test.js +0 -149
- data/dist/es/ember-glimmer/tests/integration/helpers/input-test.js +0 -827
- data/dist/es/ember-glimmer/tests/integration/helpers/loc-test.js +0 -103
- data/dist/es/ember-glimmer/tests/integration/helpers/log-test.js +0 -61
- data/dist/es/ember-glimmer/tests/integration/helpers/mut-test.js +0 -580
- data/dist/es/ember-glimmer/tests/integration/helpers/partial-test.js +0 -386
- data/dist/es/ember-glimmer/tests/integration/helpers/readonly-test.js +0 -293
- data/dist/es/ember-glimmer/tests/integration/helpers/render-test.js +0 -522
- data/dist/es/ember-glimmer/tests/integration/helpers/text-area-test.js +0 -166
- data/dist/es/ember-glimmer/tests/integration/helpers/unbound-test.js +0 -650
- data/dist/es/ember-glimmer/tests/integration/helpers/yield-test.js +0 -275
- data/dist/es/ember-glimmer/tests/integration/input-test.js +0 -242
- data/dist/es/ember-glimmer/tests/integration/mount-test.js +0 -424
- data/dist/es/ember-glimmer/tests/integration/outlet-test.js +0 -318
- data/dist/es/ember-glimmer/tests/integration/refinements-test.js +0 -74
- data/dist/es/ember-glimmer/tests/integration/render-settled-test.js +0 -72
- data/dist/es/ember-glimmer/tests/integration/svg-test.js +0 -158
- data/dist/es/ember-glimmer/tests/integration/syntax/each-in-test.js +0 -697
- data/dist/es/ember-glimmer/tests/integration/syntax/each-test.js +0 -1251
- data/dist/es/ember-glimmer/tests/integration/syntax/experimental-syntax-test.js +0 -42
- data/dist/es/ember-glimmer/tests/integration/syntax/if-unless-test.js +0 -108
- data/dist/es/ember-glimmer/tests/integration/syntax/in-element-test.js +0 -119
- data/dist/es/ember-glimmer/tests/integration/syntax/let-test.js +0 -390
- data/dist/es/ember-glimmer/tests/integration/syntax/with-dynamic-var-test.js +0 -36
- data/dist/es/ember-glimmer/tests/integration/syntax/with-test.js +0 -422
- data/dist/es/ember-glimmer/tests/unit/outlet-test.js +0 -48
- data/dist/es/ember-glimmer/tests/unit/runtime-resolver-cache-test.js +0 -263
- data/dist/es/ember-glimmer/tests/unit/template-factory-test.js +0 -67
- data/dist/es/ember-glimmer/tests/unit/utils/debug-stack-test.js +0 -38
- data/dist/es/ember-glimmer/tests/utils/abstract-test-case.js +0 -1
- data/dist/es/ember-glimmer/tests/utils/helpers.js +0 -15
- data/dist/es/ember-glimmer/tests/utils/shared-conditional-tests.js +0 -965
- data/dist/es/ember-glimmer/tests/utils/string-test.js +0 -47
- data/dist/es/ember-glimmer/tests/utils/test-case.js +0 -6
- data/dist/es/ember-glimmer/tests/utils/test-helpers.js +0 -1
- data/dist/es/ember-meta/index.js +0 -1
- data/dist/es/ember-meta/lib/meta.js +0 -623
- data/dist/es/ember-meta/tests/meta_test.js +0 -169
- data/dist/es/ember-metal/index.js +0 -33
- data/dist/es/ember-metal/lib/alias.js +0 -80
- data/dist/es/ember-metal/lib/array.js +0 -55
- data/dist/es/ember-metal/lib/array_events.js +0 -65
- data/dist/es/ember-metal/lib/chains.js +0 -315
- data/dist/es/ember-metal/lib/change_event.js +0 -4
- data/dist/es/ember-metal/lib/computed.js +0 -526
- data/dist/es/ember-metal/lib/computed_cache.js +0 -58
- data/dist/es/ember-metal/lib/dependent_keys.js +0 -34
- data/dist/es/ember-metal/lib/deprecate_property.js +0 -34
- data/dist/es/ember-metal/lib/descriptor.js +0 -28
- data/dist/es/ember-metal/lib/each_proxy.js +0 -106
- data/dist/es/ember-metal/lib/each_proxy_events.js +0 -13
- data/dist/es/ember-metal/lib/events.js +0 -174
- data/dist/es/ember-metal/lib/expand_properties.js +0 -64
- data/dist/es/ember-metal/lib/get_properties.js +0 -45
- data/dist/es/ember-metal/lib/injected_property.js +0 -53
- data/dist/es/ember-metal/lib/is_blank.js +0 -34
- data/dist/es/ember-metal/lib/is_empty.js +0 -63
- data/dist/es/ember-metal/lib/is_none.js +0 -27
- data/dist/es/ember-metal/lib/is_present.js +0 -38
- data/dist/es/ember-metal/lib/libraries.js +0 -80
- data/dist/es/ember-metal/lib/mixin.js +0 -646
- data/dist/es/ember-metal/lib/namespace_search.js +0 -166
- data/dist/es/ember-metal/lib/observer.js +0 -34
- data/dist/es/ember-metal/lib/observer_set.js +0 -48
- data/dist/es/ember-metal/lib/path_cache.js +0 -5
- data/dist/es/ember-metal/lib/properties.js +0 -192
- data/dist/es/ember-metal/lib/property_events.js +0 -198
- data/dist/es/ember-metal/lib/property_get.js +0 -160
- data/dist/es/ember-metal/lib/property_set.js +0 -157
- data/dist/es/ember-metal/lib/set_properties.js +0 -43
- data/dist/es/ember-metal/lib/tags.js +0 -81
- data/dist/es/ember-metal/lib/tracked.js +0 -201
- data/dist/es/ember-metal/lib/transaction.js +0 -137
- data/dist/es/ember-metal/lib/watch_key.js +0 -113
- data/dist/es/ember-metal/lib/watch_path.js +0 -24
- data/dist/es/ember-metal/lib/watching.js +0 -54
- data/dist/es/ember-metal/tests/accessors/get_path_test.js +0 -82
- data/dist/es/ember-metal/tests/accessors/get_properties_test.js +0 -36
- data/dist/es/ember-metal/tests/accessors/get_test.js +0 -335
- data/dist/es/ember-metal/tests/accessors/mandatory_setters_test.js +0 -470
- data/dist/es/ember-metal/tests/accessors/set_path_test.js +0 -97
- data/dist/es/ember-metal/tests/accessors/set_test.js +0 -128
- data/dist/es/ember-metal/tests/alias_test.js +0 -167
- data/dist/es/ember-metal/tests/chains_test.js +0 -210
- data/dist/es/ember-metal/tests/computed_test.js +0 -1040
- data/dist/es/ember-metal/tests/descriptor_test.js +0 -368
- data/dist/es/ember-metal/tests/events_test.js +0 -210
- data/dist/es/ember-metal/tests/expand_properties_test.js +0 -119
- data/dist/es/ember-metal/tests/injected_property_test.js +0 -76
- data/dist/es/ember-metal/tests/is_blank_test.js +0 -29
- data/dist/es/ember-metal/tests/is_empty_test.js +0 -55
- data/dist/es/ember-metal/tests/is_none_test.js +0 -23
- data/dist/es/ember-metal/tests/is_present_test.js +0 -30
- data/dist/es/ember-metal/tests/libraries_test.js +0 -99
- data/dist/es/ember-metal/tests/main_test.js +0 -31
- data/dist/es/ember-metal/tests/mixin/alias_method_test.js +0 -91
- data/dist/es/ember-metal/tests/mixin/apply_test.js +0 -40
- data/dist/es/ember-metal/tests/mixin/computed_test.js +0 -166
- data/dist/es/ember-metal/tests/mixin/concatenated_properties_test.js +0 -117
- data/dist/es/ember-metal/tests/mixin/detect_test.js +0 -40
- data/dist/es/ember-metal/tests/mixin/introspection_test.js +0 -75
- data/dist/es/ember-metal/tests/mixin/merged_properties_test.js +0 -200
- data/dist/es/ember-metal/tests/mixin/method_test.js +0 -252
- data/dist/es/ember-metal/tests/mixin/observer_test.js +0 -202
- data/dist/es/ember-metal/tests/mixin/reopen_test.js +0 -53
- data/dist/es/ember-metal/tests/mixin/without_test.js +0 -22
- data/dist/es/ember-metal/tests/namespace_search_test.js +0 -16
- data/dist/es/ember-metal/tests/observer_test.js +0 -961
- data/dist/es/ember-metal/tests/performance_test.js +0 -81
- data/dist/es/ember-metal/tests/properties_test.js +0 -120
- data/dist/es/ember-metal/tests/property_did_change_hook.js +0 -73
- data/dist/es/ember-metal/tests/set_properties_test.js +0 -49
- data/dist/es/ember-metal/tests/tracked/computed_test.js +0 -67
- data/dist/es/ember-metal/tests/tracked/get_test.js +0 -86
- data/dist/es/ember-metal/tests/tracked/set_test.js +0 -44
- data/dist/es/ember-metal/tests/tracked/support.js +0 -37
- data/dist/es/ember-metal/tests/tracked/validation_test.js +0 -233
- data/dist/es/ember-metal/tests/watching/is_watching_test.js +0 -97
- data/dist/es/ember-metal/tests/watching/unwatch_test.js +0 -109
- data/dist/es/ember-metal/tests/watching/watch_test.js +0 -255
- data/dist/es/ember-owner/index.js +0 -66
- data/dist/es/ember-routing/index.js +0 -21
- data/dist/es/ember-routing/lib/ext/controller.js +0 -222
- data/dist/es/ember-routing/lib/location/api.js +0 -118
- data/dist/es/ember-routing/lib/location/auto_location.js +0 -323
- data/dist/es/ember-routing/lib/location/hash_location.js +0 -171
- data/dist/es/ember-routing/lib/location/history_location.js +0 -298
- data/dist/es/ember-routing/lib/location/none_location.js +0 -122
- data/dist/es/ember-routing/lib/location/util.js +0 -114
- data/dist/es/ember-routing/lib/services/router.js +0 -243
- data/dist/es/ember-routing/lib/services/routing.js +0 -101
- data/dist/es/ember-routing/lib/system/cache.js +0 -40
- data/dist/es/ember-routing/lib/system/controller_for.js +0 -14
- data/dist/es/ember-routing/lib/system/dsl.js +0 -208
- data/dist/es/ember-routing/lib/system/generate_controller.js +0 -54
- data/dist/es/ember-routing/lib/system/query_params.js +0 -6
- data/dist/es/ember-routing/lib/system/route.js +0 -2476
- data/dist/es/ember-routing/lib/system/router.js +0 -1607
- data/dist/es/ember-routing/lib/system/router_state.js +0 -26
- data/dist/es/ember-routing/lib/system/transition.js +0 -153
- data/dist/es/ember-routing/lib/utils.js +0 -230
- data/dist/es/ember-routing/tests/ext/controller_test.js +0 -85
- data/dist/es/ember-routing/tests/location/auto_location_test.js +0 -379
- data/dist/es/ember-routing/tests/location/hash_location_test.js +0 -207
- data/dist/es/ember-routing/tests/location/history_location_test.js +0 -322
- data/dist/es/ember-routing/tests/location/none_location_test.js +0 -88
- data/dist/es/ember-routing/tests/location/util_test.js +0 -159
- data/dist/es/ember-routing/tests/system/cache_test.js +0 -54
- data/dist/es/ember-routing/tests/system/controller_for_test.js +0 -75
- data/dist/es/ember-routing/tests/system/dsl_test.js +0 -413
- data/dist/es/ember-routing/tests/system/route_test.js +0 -587
- data/dist/es/ember-routing/tests/system/router_test.js +0 -287
- data/dist/es/ember-routing/tests/utils_test.js +0 -37
- data/dist/es/ember-runtime/.gitignore +0 -1
- data/dist/es/ember-runtime/README +0 -12
- data/dist/es/ember-runtime/index.js +0 -35
- data/dist/es/ember-runtime/lib/compare.js +0 -149
- data/dist/es/ember-runtime/lib/copy.js +0 -106
- data/dist/es/ember-runtime/lib/ext/function.js +0 -154
- data/dist/es/ember-runtime/lib/ext/rsvp.js +0 -59
- data/dist/es/ember-runtime/lib/is-equal.js +0 -60
- data/dist/es/ember-runtime/lib/mixins/-proxy.js +0 -109
- data/dist/es/ember-runtime/lib/mixins/action_handler.js +0 -222
- data/dist/es/ember-runtime/lib/mixins/array.js +0 -1661
- data/dist/es/ember-runtime/lib/mixins/comparable.js +0 -38
- data/dist/es/ember-runtime/lib/mixins/container_proxy.js +0 -154
- data/dist/es/ember-runtime/lib/mixins/copyable.js +0 -34
- data/dist/es/ember-runtime/lib/mixins/enumerable.js +0 -16
- data/dist/es/ember-runtime/lib/mixins/evented.js +0 -149
- data/dist/es/ember-runtime/lib/mixins/mutable_enumerable.js +0 -18
- data/dist/es/ember-runtime/lib/mixins/observable.js +0 -482
- data/dist/es/ember-runtime/lib/mixins/promise_proxy.js +0 -224
- data/dist/es/ember-runtime/lib/mixins/registry_proxy.js +0 -265
- data/dist/es/ember-runtime/lib/mixins/target_action_support.js +0 -172
- data/dist/es/ember-runtime/lib/system/array_proxy.js +0 -298
- data/dist/es/ember-runtime/lib/system/core_object.js +0 -1037
- data/dist/es/ember-runtime/lib/system/namespace.js +0 -69
- data/dist/es/ember-runtime/lib/system/object.js +0 -73
- data/dist/es/ember-runtime/lib/system/object_proxy.js +0 -81
- data/dist/es/ember-runtime/lib/type-of.js +0 -107
- data/dist/es/ember-runtime/tests/array/any-test.js +0 -55
- data/dist/es/ember-runtime/tests/array/compact-test.js +0 -12
- data/dist/es/ember-runtime/tests/array/every-test.js +0 -82
- data/dist/es/ember-runtime/tests/array/filter-test.js +0 -123
- data/dist/es/ember-runtime/tests/array/find-test.js +0 -86
- data/dist/es/ember-runtime/tests/array/firstObject-test.js +0 -27
- data/dist/es/ember-runtime/tests/array/forEach-test.js +0 -68
- data/dist/es/ember-runtime/tests/array/includes-test.js +0 -46
- data/dist/es/ember-runtime/tests/array/indexOf-test.js +0 -27
- data/dist/es/ember-runtime/tests/array/invoke-test.js +0 -60
- data/dist/es/ember-runtime/tests/array/isAny-test.js +0 -53
- data/dist/es/ember-runtime/tests/array/lastIndexOf-test.js +0 -78
- data/dist/es/ember-runtime/tests/array/lastObject-test.js +0 -31
- data/dist/es/ember-runtime/tests/array/map-test.js +0 -68
- data/dist/es/ember-runtime/tests/array/mapBy-test.js +0 -16
- data/dist/es/ember-runtime/tests/array/objectAt-test.js +0 -34
- data/dist/es/ember-runtime/tests/array/reduce-test.js +0 -24
- data/dist/es/ember-runtime/tests/array/reject-test.js +0 -134
- data/dist/es/ember-runtime/tests/array/sortBy-test.js +0 -23
- data/dist/es/ember-runtime/tests/array/toArray-test.js +0 -11
- data/dist/es/ember-runtime/tests/array/uniq-test.js +0 -27
- data/dist/es/ember-runtime/tests/array/uniqBy-test.js +0 -33
- data/dist/es/ember-runtime/tests/array/without-test.js +0 -39
- data/dist/es/ember-runtime/tests/copyable-array/copy-test.js +0 -12
- data/dist/es/ember-runtime/tests/core/compare_test.js +0 -89
- data/dist/es/ember-runtime/tests/core/copy_test.js +0 -47
- data/dist/es/ember-runtime/tests/core/isEqual_test.js +0 -65
- data/dist/es/ember-runtime/tests/core/is_array_test.js +0 -59
- data/dist/es/ember-runtime/tests/core/is_empty_test.js +0 -15
- data/dist/es/ember-runtime/tests/core/type_of_test.js +0 -54
- data/dist/es/ember-runtime/tests/ext/function_test.js +0 -121
- data/dist/es/ember-runtime/tests/ext/rsvp_test.js +0 -269
- data/dist/es/ember-runtime/tests/helpers/array.js +0 -336
- data/dist/es/ember-runtime/tests/inject_test.js +0 -51
- data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/chained_test.js +0 -63
- data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/observable_test.js +0 -892
- data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test.js +0 -142
- data/dist/es/ember-runtime/tests/legacy_1x/system/object/base_test.js +0 -98
- data/dist/es/ember-runtime/tests/legacy_1x/system/object/concatenated_test.js +0 -131
- data/dist/es/ember-runtime/tests/mixins/array_test.js +0 -400
- data/dist/es/ember-runtime/tests/mixins/comparable_test.js +0 -37
- data/dist/es/ember-runtime/tests/mixins/container_proxy_test.js +0 -48
- data/dist/es/ember-runtime/tests/mixins/enumerable_test.js +0 -17
- data/dist/es/ember-runtime/tests/mixins/evented_test.js +0 -23
- data/dist/es/ember-runtime/tests/mixins/mutable_enumerable_test.js +0 -17
- data/dist/es/ember-runtime/tests/mixins/observable_test.js +0 -137
- data/dist/es/ember-runtime/tests/mixins/promise_proxy_test.js +0 -593
- data/dist/es/ember-runtime/tests/mixins/target_action_support_test.js +0 -237
- data/dist/es/ember-runtime/tests/mutable-array/addObject-test.js +0 -76
- data/dist/es/ember-runtime/tests/mutable-array/clear-test.js +0 -64
- data/dist/es/ember-runtime/tests/mutable-array/insertAt-test.js +0 -216
- data/dist/es/ember-runtime/tests/mutable-array/popObject-test.js +0 -91
- data/dist/es/ember-runtime/tests/mutable-array/pushObject-test.js +0 -98
- data/dist/es/ember-runtime/tests/mutable-array/pushObjects-test.js +0 -12
- data/dist/es/ember-runtime/tests/mutable-array/removeAt-test.js +0 -187
- data/dist/es/ember-runtime/tests/mutable-array/removeObject-test.js +0 -77
- data/dist/es/ember-runtime/tests/mutable-array/removeObjects-test.js +0 -202
- data/dist/es/ember-runtime/tests/mutable-array/replace-test.js +0 -221
- data/dist/es/ember-runtime/tests/mutable-array/reverseObjects-test.js +0 -35
- data/dist/es/ember-runtime/tests/mutable-array/setObjects-test.js +0 -63
- data/dist/es/ember-runtime/tests/mutable-array/shiftObject-test.js +0 -105
- data/dist/es/ember-runtime/tests/mutable-array/unshiftObject-test.js +0 -99
- data/dist/es/ember-runtime/tests/mutable-array/unshiftObjects-test.js +0 -102
- data/dist/es/ember-runtime/tests/system/array_proxy/arranged_content_test.js +0 -275
- data/dist/es/ember-runtime/tests/system/array_proxy/array_observer_test.js +0 -51
- data/dist/es/ember-runtime/tests/system/array_proxy/content_change_test.js +0 -85
- data/dist/es/ember-runtime/tests/system/array_proxy/length_test.js +0 -201
- data/dist/es/ember-runtime/tests/system/array_proxy/watching_and_listening_test.js +0 -157
- data/dist/es/ember-runtime/tests/system/core_object_test.js +0 -114
- data/dist/es/ember-runtime/tests/system/namespace/base_test.js +0 -175
- data/dist/es/ember-runtime/tests/system/native_array/a_test.js +0 -16
- data/dist/es/ember-runtime/tests/system/native_array/copyable_suite_test.js +0 -19
- data/dist/es/ember-runtime/tests/system/native_array/replace_test.js +0 -17
- data/dist/es/ember-runtime/tests/system/object/computed_test.js +0 -352
- data/dist/es/ember-runtime/tests/system/object/create_test.js +0 -135
- data/dist/es/ember-runtime/tests/system/object/destroy_test.js +0 -146
- data/dist/es/ember-runtime/tests/system/object/detectInstance_test.js +0 -38
- data/dist/es/ember-runtime/tests/system/object/detect_test.js +0 -33
- data/dist/es/ember-runtime/tests/system/object/es-compatibility-test.js +0 -469
- data/dist/es/ember-runtime/tests/system/object/events_test.js +0 -156
- data/dist/es/ember-runtime/tests/system/object/extend_test.js +0 -153
- data/dist/es/ember-runtime/tests/system/object/observer_test.js +0 -216
- data/dist/es/ember-runtime/tests/system/object/reopenClass_test.js +0 -36
- data/dist/es/ember-runtime/tests/system/object/reopen_test.js +0 -48
- data/dist/es/ember-runtime/tests/system/object/strict-mode-test.js +0 -31
- data/dist/es/ember-runtime/tests/system/object/toString_test.js +0 -125
- data/dist/es/ember-runtime/tests/system/object_proxy_test.js +0 -314
- data/dist/es/ember-template-compiler/index.js +0 -26
- data/dist/es/ember-template-compiler/lib/compat.js +0 -16
- data/dist/es/ember-template-compiler/lib/plugins/assert-if-helper-without-arguments.js +0 -38
- data/dist/es/ember-template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -20
- data/dist/es/ember-template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -26
- data/dist/es/ember-template-compiler/lib/plugins/assert-splattribute-expression.js +0 -27
- data/dist/es/ember-template-compiler/lib/plugins/deprecate-render-model.js +0 -38
- data/dist/es/ember-template-compiler/lib/plugins/deprecate-render.js +0 -41
- data/dist/es/ember-template-compiler/lib/plugins/deprecate-send-action.js +0 -42
- data/dist/es/ember-template-compiler/lib/plugins/index.js +0 -50
- data/dist/es/ember-template-compiler/lib/plugins/transform-action-syntax.js +0 -52
- data/dist/es/ember-template-compiler/lib/plugins/transform-angle-bracket-components.js +0 -10
- data/dist/es/ember-template-compiler/lib/plugins/transform-attrs-into-args.js +0 -62
- data/dist/es/ember-template-compiler/lib/plugins/transform-dot-component-invocation.js +0 -88
- data/dist/es/ember-template-compiler/lib/plugins/transform-each-in-into-each.js +0 -48
- data/dist/es/ember-template-compiler/lib/plugins/transform-has-block-syntax.js +0 -46
- data/dist/es/ember-template-compiler/lib/plugins/transform-in-element.js +0 -83
- data/dist/es/ember-template-compiler/lib/plugins/transform-inline-link-to.js +0 -31
- data/dist/es/ember-template-compiler/lib/plugins/transform-input-type-syntax.js +0 -52
- data/dist/es/ember-template-compiler/lib/plugins/transform-old-binding-syntax.js +0 -48
- data/dist/es/ember-template-compiler/lib/plugins/transform-old-class-binding-syntax.js +0 -102
- data/dist/es/ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.js +0 -34
- data/dist/es/ember-template-compiler/lib/plugins/transform-top-level-components.js +0 -41
- data/dist/es/ember-template-compiler/lib/system/bootstrap.js +0 -44
- data/dist/es/ember-template-compiler/lib/system/calculate-location-display.js +0 -20
- data/dist/es/ember-template-compiler/lib/system/compile-options.js +0 -71
- data/dist/es/ember-template-compiler/lib/system/compile.js +0 -28
- data/dist/es/ember-template-compiler/lib/system/dasherize-component-name.js +0 -13
- data/dist/es/ember-template-compiler/lib/system/initializer.js +0 -22
- data/dist/es/ember-template-compiler/lib/system/precompile.js +0 -18
- data/dist/es/ember-template-compiler/tests/plugins/assert-if-helper-without-arguments-test.js +0 -51
- data/dist/es/ember-template-compiler/tests/plugins/assert-input-helper-without-block-test.js +0 -17
- data/dist/es/ember-template-compiler/tests/plugins/assert-reserved-named-arguments-test.js +0 -416
- data/dist/es/ember-template-compiler/tests/plugins/assert-splattribute-expression-test.js +0 -57
- data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-model-test.js +0 -19
- data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-test.js +0 -19
- data/dist/es/ember-template-compiler/tests/plugins/deprecate-send-action-test.js +0 -29
- data/dist/es/ember-template-compiler/tests/plugins/transform-dot-component-invocation-test.js +0 -27
- data/dist/es/ember-template-compiler/tests/plugins/transform-inline-link-to-test.js +0 -15
- data/dist/es/ember-template-compiler/tests/plugins/transform-input-type-syntax-test.js +0 -25
- data/dist/es/ember-template-compiler/tests/system/bootstrap-test.js +0 -155
- data/dist/es/ember-template-compiler/tests/system/compile_options_test.js +0 -115
- data/dist/es/ember-template-compiler/tests/system/dasherize-component-name-test.js +0 -19
- data/dist/es/ember-testing/index.js +0 -10
- data/dist/es/ember-testing/lib/adapters/adapter.js +0 -58
- data/dist/es/ember-testing/lib/adapters/qunit.js +0 -47
- data/dist/es/ember-testing/lib/events.js +0 -136
- data/dist/es/ember-testing/lib/ext/application.js +0 -191
- data/dist/es/ember-testing/lib/ext/rsvp.js +0 -19
- data/dist/es/ember-testing/lib/helpers.js +0 -30
- data/dist/es/ember-testing/lib/helpers/-is-form-control.js +0 -16
- data/dist/es/ember-testing/lib/helpers/and_then.js +0 -3
- data/dist/es/ember-testing/lib/helpers/click.js +0 -36
- data/dist/es/ember-testing/lib/helpers/current_path.js +0 -27
- data/dist/es/ember-testing/lib/helpers/current_route_name.js +0 -25
- data/dist/es/ember-testing/lib/helpers/current_url.js +0 -27
- data/dist/es/ember-testing/lib/helpers/fill_in.js +0 -46
- data/dist/es/ember-testing/lib/helpers/find.js +0 -41
- data/dist/es/ember-testing/lib/helpers/find_with_assert.js +0 -34
- data/dist/es/ember-testing/lib/helpers/key_event.js +0 -36
- data/dist/es/ember-testing/lib/helpers/pause_test.js +0 -65
- data/dist/es/ember-testing/lib/helpers/trigger_event.js +0 -62
- data/dist/es/ember-testing/lib/helpers/visit.js +0 -42
- data/dist/es/ember-testing/lib/helpers/wait.js +0 -72
- data/dist/es/ember-testing/lib/initializers.js +0 -17
- data/dist/es/ember-testing/lib/setup_for_testing.js +0 -44
- data/dist/es/ember-testing/lib/support.js +0 -62
- data/dist/es/ember-testing/lib/test.js +0 -70
- data/dist/es/ember-testing/lib/test/adapter.js +0 -33
- data/dist/es/ember-testing/lib/test/helpers.js +0 -125
- data/dist/es/ember-testing/lib/test/on_inject_helpers.js +0 -38
- data/dist/es/ember-testing/lib/test/pending_requests.js +0 -24
- data/dist/es/ember-testing/lib/test/promise.js +0 -79
- data/dist/es/ember-testing/lib/test/run.js +0 -9
- data/dist/es/ember-testing/lib/test/waiters.js +0 -117
- data/dist/es/ember-testing/tests/acceptance_test.js +0 -478
- data/dist/es/ember-testing/tests/adapters/adapter_test.js +0 -31
- data/dist/es/ember-testing/tests/adapters/qunit_test.js +0 -50
- data/dist/es/ember-testing/tests/adapters_test.js +0 -405
- data/dist/es/ember-testing/tests/ext/rsvp_test.js +0 -124
- data/dist/es/ember-testing/tests/helper_registration_test.js +0 -98
- data/dist/es/ember-testing/tests/helpers_test.js +0 -1228
- data/dist/es/ember-testing/tests/integration_test.js +0 -106
- data/dist/es/ember-testing/tests/reexports_test.js +0 -26
- data/dist/es/ember-testing/tests/test/waiters-test.js +0 -145
- data/dist/es/ember-utils/index.js +0 -28
- data/dist/es/ember-utils/lib/cache.js +0 -36
- data/dist/es/ember-utils/lib/dictionary.js +0 -11
- data/dist/es/ember-utils/lib/guid.js +0 -120
- data/dist/es/ember-utils/lib/inspect.js +0 -112
- data/dist/es/ember-utils/lib/intern.js +0 -49
- data/dist/es/ember-utils/lib/invoke.js +0 -53
- data/dist/es/ember-utils/lib/is_proxy.js +0 -14
- data/dist/es/ember-utils/lib/lookup-descriptor.js +0 -11
- data/dist/es/ember-utils/lib/make-array.js +0 -7
- data/dist/es/ember-utils/lib/name.js +0 -9
- data/dist/es/ember-utils/lib/proxy-utils.js +0 -1
- data/dist/es/ember-utils/lib/spec.js +0 -14
- data/dist/es/ember-utils/lib/super.js +0 -83
- data/dist/es/ember-utils/lib/symbol-utils.js +0 -8
- data/dist/es/ember-utils/lib/symbol.js +0 -15
- data/dist/es/ember-utils/lib/to-string.js +0 -35
- data/dist/es/ember-utils/lib/weak_set.js +0 -18
- data/dist/es/ember-utils/tests/cache_test.js +0 -77
- data/dist/es/ember-utils/tests/can_invoke_test.js +0 -46
- data/dist/es/ember-utils/tests/checkHasSuper_test.js +0 -17
- data/dist/es/ember-utils/tests/generate_guid_test.js +0 -13
- data/dist/es/ember-utils/tests/guid_for_test.js +0 -101
- data/dist/es/ember-utils/tests/inspect_test.js +0 -146
- data/dist/es/ember-utils/tests/is_proxy_test.js +0 -18
- data/dist/es/ember-utils/tests/make_array_test.js +0 -41
- data/dist/es/ember-utils/tests/to-string-test.js +0 -32
- data/dist/es/ember-utils/tests/try_invoke_test.js +0 -48
- data/dist/es/ember-views/index.js +0 -28
- data/dist/es/ember-views/lib/compat/attrs.js +0 -3
- data/dist/es/ember-views/lib/compat/fallback-view-registry.js +0 -3
- data/dist/es/ember-views/lib/component_lookup.js +0 -27
- data/dist/es/ember-views/lib/mixins/action_support.js +0 -189
- data/dist/es/ember-views/lib/mixins/child_views_support.js +0 -27
- data/dist/es/ember-views/lib/mixins/class_names_support.js +0 -102
- data/dist/es/ember-views/lib/mixins/text_support.js +0 -333
- data/dist/es/ember-views/lib/mixins/view_state_support.js +0 -19
- data/dist/es/ember-views/lib/mixins/view_support.js +0 -452
- data/dist/es/ember-views/lib/system/action_manager.js +0 -14
- data/dist/es/ember-views/lib/system/event_dispatcher.js +0 -454
- data/dist/es/ember-views/lib/system/jquery.js +0 -29
- data/dist/es/ember-views/lib/system/jquery_event_deprecation.js +0 -61
- data/dist/es/ember-views/lib/system/lookup_partial.js +0 -55
- data/dist/es/ember-views/lib/system/utils.js +0 -201
- data/dist/es/ember-views/lib/utils/lookup-component.js +0 -58
- data/dist/es/ember-views/lib/views/core_view.js +0 -83
- data/dist/es/ember-views/lib/views/states.js +0 -48
- data/dist/es/ember-views/lib/views/states/default.js +0 -17
- data/dist/es/ember-views/lib/views/states/destroying.js +0 -16
- data/dist/es/ember-views/lib/views/states/has_element.js +0 -31
- data/dist/es/ember-views/lib/views/states/in_dom.js +0 -28
- data/dist/es/ember-views/lib/views/states/pre_render.js +0 -3
- data/dist/es/ember/index.js +0 -645
- data/dist/es/ember/tests/application_lifecycle_test.js +0 -188
- data/dist/es/ember/tests/component_context_test.js +0 -255
- data/dist/es/ember/tests/component_registration_test.js +0 -252
- data/dist/es/ember/tests/controller_test.js +0 -44
- data/dist/es/ember/tests/error_handler_test.js +0 -581
- data/dist/es/ember/tests/helpers/helper_registration_test.js +0 -103
- data/dist/es/ember/tests/helpers/link_to_test.js +0 -2103
- data/dist/es/ember/tests/helpers/link_to_test/link_to_transitioning_classes_test.js +0 -342
- data/dist/es/ember/tests/helpers/link_to_test/link_to_with_query_params_test.js +0 -694
- data/dist/es/ember/tests/homepage_example_test.js +0 -47
- data/dist/es/ember/tests/integration/multiple-app-test.js +0 -101
- data/dist/es/ember/tests/production_build_test.js +0 -34
- data/dist/es/ember/tests/reexports_test.js +0 -307
- data/dist/es/ember/tests/routing/decoupled_basic_test.js +0 -4506
- data/dist/es/ember/tests/routing/query_params_test.js +0 -1579
- data/dist/es/ember/tests/routing/query_params_test/model_dependent_state_with_query_params_test.js +0 -1117
- data/dist/es/ember/tests/routing/query_params_test/overlapping_query_params_test.js +0 -185
- data/dist/es/ember/tests/routing/query_params_test/query_param_async_get_handler_test.js +0 -327
- data/dist/es/ember/tests/routing/query_params_test/query_params_paramless_link_to_test.js +0 -37
- data/dist/es/ember/tests/routing/query_params_test/shared_state_test.js +0 -84
- data/dist/es/ember/tests/routing/router_map_test.js +0 -46
- data/dist/es/ember/tests/routing/router_service_test/basic_test.js +0 -95
- data/dist/es/ember/tests/routing/router_service_test/currenturl_lifecycle_test.js +0 -149
- data/dist/es/ember/tests/routing/router_service_test/isActive_test.js +0 -113
- data/dist/es/ember/tests/routing/router_service_test/replaceWith_test.js +0 -144
- data/dist/es/ember/tests/routing/router_service_test/transitionTo_test.js +0 -370
- data/dist/es/ember/tests/routing/router_service_test/urlFor_test.js +0 -307
- data/dist/es/ember/tests/routing/substates_test.js +0 -1110
- data/dist/es/ember/tests/routing/toplevel_dom_test.js +0 -37
- data/dist/es/ember/tests/service_injection_test.js +0 -278
- data/dist/es/ember/tests/view_instrumentation_test.js +0 -47
- data/dist/es/ember/version.js +0 -1
- data/dist/es/handlebars.js +0 -1268
- data/dist/es/internal-test-helpers/index.js +0 -31
- data/dist/es/internal-test-helpers/lib/.gitkeep +0 -0
- data/dist/es/internal-test-helpers/lib/apply-mixins.js +0 -37
- data/dist/es/internal-test-helpers/lib/browser-detect.js +0 -4
- data/dist/es/internal-test-helpers/lib/build-owner.js +0 -49
- data/dist/es/internal-test-helpers/lib/confirm-export.js +0 -45
- data/dist/es/internal-test-helpers/lib/ember-dev/assertion.js +0 -87
- data/dist/es/internal-test-helpers/lib/ember-dev/containers.js +0 -34
- data/dist/es/internal-test-helpers/lib/ember-dev/debug.js +0 -47
- data/dist/es/internal-test-helpers/lib/ember-dev/deprecation.js +0 -71
- data/dist/es/internal-test-helpers/lib/ember-dev/index.js +0 -19
- data/dist/es/internal-test-helpers/lib/ember-dev/method-call-tracker.js +0 -127
- data/dist/es/internal-test-helpers/lib/ember-dev/namespaces.js +0 -34
- data/dist/es/internal-test-helpers/lib/ember-dev/run-loop.js +0 -28
- data/dist/es/internal-test-helpers/lib/ember-dev/setup-qunit.js +0 -26
- data/dist/es/internal-test-helpers/lib/ember-dev/utils.js +0 -33
- data/dist/es/internal-test-helpers/lib/ember-dev/warning.js +0 -71
- data/dist/es/internal-test-helpers/lib/equal-inner-html.js +0 -37
- data/dist/es/internal-test-helpers/lib/equal-tokens.js +0 -53
- data/dist/es/internal-test-helpers/lib/factory.js +0 -65
- data/dist/es/internal-test-helpers/lib/get-all-property-names.js +0 -12
- data/dist/es/internal-test-helpers/lib/get-text-of.js +0 -3
- data/dist/es/internal-test-helpers/lib/matchers.js +0 -167
- data/dist/es/internal-test-helpers/lib/module-for.js +0 -89
- data/dist/es/internal-test-helpers/lib/registry-check.js +0 -28
- data/dist/es/internal-test-helpers/lib/run.js +0 -11
- data/dist/es/internal-test-helpers/lib/strip.js +0 -12
- data/dist/es/internal-test-helpers/lib/system/synthetic-events.js +0 -183
- data/dist/es/internal-test-helpers/lib/test-cases/abstract-application.js +0 -70
- data/dist/es/internal-test-helpers/lib/test-cases/abstract-rendering.js +0 -203
- data/dist/es/internal-test-helpers/lib/test-cases/abstract.js +0 -222
- data/dist/es/internal-test-helpers/lib/test-cases/application.js +0 -39
- data/dist/es/internal-test-helpers/lib/test-cases/autoboot-application.js +0 -34
- data/dist/es/internal-test-helpers/lib/test-cases/default-resolver-application.js +0 -43
- data/dist/es/internal-test-helpers/lib/test-cases/node-query.js +0 -120
- data/dist/es/internal-test-helpers/lib/test-cases/query-param.js +0 -124
- data/dist/es/internal-test-helpers/lib/test-cases/rendering.js +0 -14
- data/dist/es/internal-test-helpers/lib/test-cases/router.js +0 -26
- data/dist/es/internal-test-helpers/lib/test-cases/test-resolver-application.js +0 -40
- data/dist/es/internal-test-helpers/lib/test-resolver.js +0 -86
- data/dist/es/internal-test-helpers/tests/index-test.js +0 -10
- data/dist/es/route-recognizer.js +0 -685
- data/dist/es/router.js +0 -2454
- data/dist/es/rsvp.js +0 -2394
- data/dist/es/simple-html-tokenizer.js +0 -638
- data/dist/jquery/jquery.js +0 -10364
- data/dist/node/app-boot-test.js +0 -146
- data/dist/node/build-info-test.js +0 -177
- data/dist/node/component-rendering-test.js +0 -34
- data/dist/node/helpers/app-module.js +0 -198
- data/dist/node/helpers/assert-html-matches.js +0 -25
- data/dist/node/helpers/build-owner.js +0 -28
- data/dist/node/helpers/component-module.js +0 -137
- data/dist/node/sourcemap-test.js +0 -27
- data/dist/node/template-compiler-test.js +0 -45
- data/dist/node/visit-test.js +0 -349
- data/dist/qunit/qunit.css +0 -436
- data/dist/qunit/qunit.js +0 -5188
- data/dist/tests/index.html +0 -254
- data/ember-source.gemspec +0 -28
- data/node_modules/.yarn-integrity +0 -10
- data/yarn.lock +0 -4
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { set, get, observer, mixin, Mixin, isWatching } from '../..';
|
|
2
|
-
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
|
|
3
|
-
|
|
4
|
-
moduleFor(
|
|
5
|
-
'Mixin observer',
|
|
6
|
-
class extends AbstractTestCase {
|
|
7
|
-
['@test global observer helper'](assert) {
|
|
8
|
-
let MyMixin = Mixin.create({
|
|
9
|
-
count: 0,
|
|
10
|
-
|
|
11
|
-
foo: observer('bar', function() {
|
|
12
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
13
|
-
}),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
let obj = mixin({}, MyMixin);
|
|
17
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
18
|
-
|
|
19
|
-
set(obj, 'bar', 'BAZ');
|
|
20
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
['@test global observer helper takes multiple params'](assert) {
|
|
24
|
-
let MyMixin = Mixin.create({
|
|
25
|
-
count: 0,
|
|
26
|
-
|
|
27
|
-
foo: observer('bar', 'baz', function() {
|
|
28
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
29
|
-
}),
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
let obj = mixin({}, MyMixin);
|
|
33
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
34
|
-
|
|
35
|
-
set(obj, 'bar', 'BAZ');
|
|
36
|
-
set(obj, 'baz', 'BAZ');
|
|
37
|
-
assert.equal(get(obj, 'count'), 2, 'should invoke observer after change');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
['@test replacing observer should remove old observer'](assert) {
|
|
41
|
-
let MyMixin = Mixin.create({
|
|
42
|
-
count: 0,
|
|
43
|
-
|
|
44
|
-
foo: observer('bar', function() {
|
|
45
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
46
|
-
}),
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
let Mixin2 = Mixin.create({
|
|
50
|
-
foo: observer('baz', function() {
|
|
51
|
-
set(this, 'count', get(this, 'count') + 10);
|
|
52
|
-
}),
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
let obj = mixin({}, MyMixin, Mixin2);
|
|
56
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
57
|
-
|
|
58
|
-
set(obj, 'bar', 'BAZ');
|
|
59
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer after change');
|
|
60
|
-
|
|
61
|
-
set(obj, 'baz', 'BAZ');
|
|
62
|
-
assert.equal(get(obj, 'count'), 10, 'should invoke observer after change');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
['@test observing chain with property before'](assert) {
|
|
66
|
-
let obj2 = { baz: 'baz' };
|
|
67
|
-
|
|
68
|
-
let MyMixin = Mixin.create({
|
|
69
|
-
count: 0,
|
|
70
|
-
bar: obj2,
|
|
71
|
-
foo: observer('bar.baz', function() {
|
|
72
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
73
|
-
}),
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
let obj = mixin({}, MyMixin);
|
|
77
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
78
|
-
|
|
79
|
-
set(obj2, 'baz', 'BAZ');
|
|
80
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
['@test observing chain with property after'](assert) {
|
|
84
|
-
let obj2 = { baz: 'baz' };
|
|
85
|
-
|
|
86
|
-
let MyMixin = Mixin.create({
|
|
87
|
-
count: 0,
|
|
88
|
-
foo: observer('bar.baz', function() {
|
|
89
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
90
|
-
}),
|
|
91
|
-
bar: obj2,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
let obj = mixin({}, MyMixin);
|
|
95
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
96
|
-
|
|
97
|
-
set(obj2, 'baz', 'BAZ');
|
|
98
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
['@test observing chain with property in mixin applied later'](assert) {
|
|
102
|
-
let obj2 = { baz: 'baz' };
|
|
103
|
-
|
|
104
|
-
let MyMixin = Mixin.create({
|
|
105
|
-
count: 0,
|
|
106
|
-
foo: observer('bar.baz', function() {
|
|
107
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
108
|
-
}),
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
let MyMixin2 = Mixin.create({ bar: obj2 });
|
|
112
|
-
|
|
113
|
-
let obj = mixin({}, MyMixin);
|
|
114
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
115
|
-
|
|
116
|
-
MyMixin2.apply(obj);
|
|
117
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
118
|
-
|
|
119
|
-
set(obj2, 'baz', 'BAZ');
|
|
120
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
['@test observing chain with existing property'](assert) {
|
|
124
|
-
let obj2 = { baz: 'baz' };
|
|
125
|
-
|
|
126
|
-
let MyMixin = Mixin.create({
|
|
127
|
-
count: 0,
|
|
128
|
-
foo: observer('bar.baz', function() {
|
|
129
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
130
|
-
}),
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
let obj = mixin({ bar: obj2 }, MyMixin);
|
|
134
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
135
|
-
|
|
136
|
-
set(obj2, 'baz', 'BAZ');
|
|
137
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
['@test observing chain with property in mixin before'](assert) {
|
|
141
|
-
let obj2 = { baz: 'baz' };
|
|
142
|
-
let MyMixin2 = Mixin.create({ bar: obj2 });
|
|
143
|
-
|
|
144
|
-
let MyMixin = Mixin.create({
|
|
145
|
-
count: 0,
|
|
146
|
-
foo: observer('bar.baz', function() {
|
|
147
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
148
|
-
}),
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
let obj = mixin({}, MyMixin2, MyMixin);
|
|
152
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
153
|
-
|
|
154
|
-
set(obj2, 'baz', 'BAZ');
|
|
155
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
['@test observing chain with property in mixin after'](assert) {
|
|
159
|
-
let obj2 = { baz: 'baz' };
|
|
160
|
-
let MyMixin2 = Mixin.create({ bar: obj2 });
|
|
161
|
-
|
|
162
|
-
let MyMixin = Mixin.create({
|
|
163
|
-
count: 0,
|
|
164
|
-
foo: observer('bar.baz', function() {
|
|
165
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
166
|
-
}),
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
let obj = mixin({}, MyMixin, MyMixin2);
|
|
170
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
171
|
-
|
|
172
|
-
set(obj2, 'baz', 'BAZ');
|
|
173
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
['@test observing chain with overridden property'](assert) {
|
|
177
|
-
let obj2 = { baz: 'baz' };
|
|
178
|
-
let obj3 = { baz: 'foo' };
|
|
179
|
-
|
|
180
|
-
let MyMixin2 = Mixin.create({ bar: obj3 });
|
|
181
|
-
|
|
182
|
-
let MyMixin = Mixin.create({
|
|
183
|
-
count: 0,
|
|
184
|
-
foo: observer('bar.baz', function() {
|
|
185
|
-
set(this, 'count', get(this, 'count') + 1);
|
|
186
|
-
}),
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
let obj = mixin({ bar: obj2 }, MyMixin, MyMixin2);
|
|
190
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer immediately');
|
|
191
|
-
|
|
192
|
-
assert.equal(isWatching(obj2, 'baz'), false, 'should not be watching baz');
|
|
193
|
-
assert.equal(isWatching(obj3, 'baz'), true, 'should be watching baz');
|
|
194
|
-
|
|
195
|
-
set(obj2, 'baz', 'BAZ');
|
|
196
|
-
assert.equal(get(obj, 'count'), 0, 'should not invoke observer after change');
|
|
197
|
-
|
|
198
|
-
set(obj3, 'baz', 'BEAR');
|
|
199
|
-
assert.equal(get(obj, 'count'), 1, 'should invoke observer after change');
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
);
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Object as EmberObject } from 'ember-runtime';
|
|
2
|
-
import { get, Mixin } from '../..';
|
|
3
|
-
import { run } from '@ember/runloop';
|
|
4
|
-
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
|
|
5
|
-
|
|
6
|
-
moduleFor(
|
|
7
|
-
'Mixin#reopen',
|
|
8
|
-
class extends AbstractTestCase {
|
|
9
|
-
['@test using reopen() to add more properties to a simple'](assert) {
|
|
10
|
-
let MixinA = Mixin.create({ foo: 'FOO', baz: 'BAZ' });
|
|
11
|
-
MixinA.reopen({ bar: 'BAR', foo: 'FOO2' });
|
|
12
|
-
let obj = {};
|
|
13
|
-
MixinA.apply(obj);
|
|
14
|
-
|
|
15
|
-
assert.equal(get(obj, 'foo'), 'FOO2', 'mixin() should override');
|
|
16
|
-
assert.equal(get(obj, 'baz'), 'BAZ', 'preserve MixinA props');
|
|
17
|
-
assert.equal(get(obj, 'bar'), 'BAR', 'include MixinB props');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
['@test using reopen() and calling _super where there is not a super function does not cause infinite recursion'](
|
|
21
|
-
assert
|
|
22
|
-
) {
|
|
23
|
-
let Taco = EmberObject.extend({
|
|
24
|
-
createBreakfast() {
|
|
25
|
-
// There is no original createBreakfast function.
|
|
26
|
-
// Calling the wrapped _super function here
|
|
27
|
-
// used to end in an infinite call loop
|
|
28
|
-
this._super(...arguments);
|
|
29
|
-
return 'Breakfast!';
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
Taco.reopen({
|
|
34
|
-
createBreakfast() {
|
|
35
|
-
return this._super(...arguments);
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
let taco = Taco.create();
|
|
40
|
-
|
|
41
|
-
let result;
|
|
42
|
-
run(() => {
|
|
43
|
-
try {
|
|
44
|
-
result = taco.createBreakfast();
|
|
45
|
-
} catch (e) {
|
|
46
|
-
result = 'Your breakfast was interrupted by an infinite stack error.';
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
assert.equal(result, 'Breakfast!');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Mixin } from '../..';
|
|
2
|
-
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
|
|
3
|
-
|
|
4
|
-
moduleFor(
|
|
5
|
-
'without',
|
|
6
|
-
class extends AbstractTestCase {
|
|
7
|
-
['@test without should create a new mixin excluding named properties'](assert) {
|
|
8
|
-
let MixinA = Mixin.create({
|
|
9
|
-
foo: 'FOO',
|
|
10
|
-
bar: 'BAR',
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
let MixinB = MixinA.without('bar');
|
|
14
|
-
|
|
15
|
-
let obj = {};
|
|
16
|
-
MixinB.apply(obj);
|
|
17
|
-
|
|
18
|
-
assert.equal(obj.foo, 'FOO', 'should defined foo');
|
|
19
|
-
assert.equal(obj.bar, undefined, 'should not define bar');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Mixin } from '..';
|
|
2
|
-
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
|
|
3
|
-
|
|
4
|
-
moduleFor(
|
|
5
|
-
'NamespaceSearch',
|
|
6
|
-
class extends AbstractTestCase {
|
|
7
|
-
['@test classToString: null as this inside class must not throw error'](assert) {
|
|
8
|
-
let mixin = Mixin.create();
|
|
9
|
-
assert.equal(
|
|
10
|
-
mixin.toString(),
|
|
11
|
-
'(unknown)',
|
|
12
|
-
'this = null should be handled on Mixin.toString() call'
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
);
|
|
@@ -1,961 +0,0 @@
|
|
|
1
|
-
import { ENV } from 'ember-environment';
|
|
2
|
-
import {
|
|
3
|
-
addObserver,
|
|
4
|
-
removeObserver,
|
|
5
|
-
notifyPropertyChange,
|
|
6
|
-
defineProperty,
|
|
7
|
-
computed,
|
|
8
|
-
getCachedValueFor,
|
|
9
|
-
Mixin,
|
|
10
|
-
mixin,
|
|
11
|
-
observer,
|
|
12
|
-
beginPropertyChanges,
|
|
13
|
-
endPropertyChanges,
|
|
14
|
-
changeProperties,
|
|
15
|
-
get,
|
|
16
|
-
set,
|
|
17
|
-
} from '..';
|
|
18
|
-
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
|
|
19
|
-
|
|
20
|
-
function K() {}
|
|
21
|
-
|
|
22
|
-
// ..........................................................
|
|
23
|
-
// ADD OBSERVER
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
moduleFor(
|
|
27
|
-
'addObserver',
|
|
28
|
-
class extends AbstractTestCase {
|
|
29
|
-
['@test observer should assert to invalid input']() {
|
|
30
|
-
expectAssertion(() => {
|
|
31
|
-
observer(() => {});
|
|
32
|
-
}, 'observer called without valid path');
|
|
33
|
-
|
|
34
|
-
expectAssertion(() => {
|
|
35
|
-
observer(null);
|
|
36
|
-
}, 'observer called without a function');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
['@test observer should fire when property is modified'](assert) {
|
|
40
|
-
let obj = {};
|
|
41
|
-
let count = 0;
|
|
42
|
-
|
|
43
|
-
addObserver(obj, 'foo', function() {
|
|
44
|
-
assert.equal(get(obj, 'foo'), 'bar', 'should invoke AFTER value changed');
|
|
45
|
-
count++;
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
set(obj, 'foo', 'bar');
|
|
49
|
-
assert.equal(count, 1, 'should have invoked observer');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
['@test observer should fire when dependent property is modified'](assert) {
|
|
53
|
-
let obj = { bar: 'bar' };
|
|
54
|
-
defineProperty(
|
|
55
|
-
obj,
|
|
56
|
-
'foo',
|
|
57
|
-
computed(function() {
|
|
58
|
-
return get(this, 'bar').toUpperCase();
|
|
59
|
-
}).property('bar')
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
get(obj, 'foo');
|
|
63
|
-
|
|
64
|
-
let count = 0;
|
|
65
|
-
addObserver(obj, 'foo', function() {
|
|
66
|
-
assert.equal(get(obj, 'foo'), 'BAZ', 'should have invoked after prop change');
|
|
67
|
-
count++;
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
set(obj, 'bar', 'baz');
|
|
71
|
-
assert.equal(count, 1, 'should have invoked observer');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
['@test observer should continue to fire after dependent properties are accessed'](assert) {
|
|
75
|
-
let observerCount = 0;
|
|
76
|
-
let obj = {};
|
|
77
|
-
|
|
78
|
-
defineProperty(
|
|
79
|
-
obj,
|
|
80
|
-
'prop',
|
|
81
|
-
computed(function() {
|
|
82
|
-
return Math.random();
|
|
83
|
-
})
|
|
84
|
-
);
|
|
85
|
-
defineProperty(
|
|
86
|
-
obj,
|
|
87
|
-
'anotherProp',
|
|
88
|
-
computed('prop', function() {
|
|
89
|
-
return get(this, 'prop') + Math.random();
|
|
90
|
-
})
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
addObserver(obj, 'prop', function() {
|
|
94
|
-
observerCount++;
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
get(obj, 'anotherProp');
|
|
98
|
-
|
|
99
|
-
for (let i = 0; i < 10; i++) {
|
|
100
|
-
notifyPropertyChange(obj, 'prop');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
assert.equal(observerCount, 10, 'should continue to fire indefinitely');
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
['@test observer added declaratively via brace expansion should fire when property changes'](
|
|
107
|
-
assert
|
|
108
|
-
) {
|
|
109
|
-
if (ENV.EXTEND_PROTOTYPES.Function) {
|
|
110
|
-
let obj = {};
|
|
111
|
-
let count = 0;
|
|
112
|
-
|
|
113
|
-
mixin(obj, {
|
|
114
|
-
observeFooAndBar: function() {
|
|
115
|
-
count++;
|
|
116
|
-
}.observes('{foo,bar}'),
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
set(obj, 'foo', 'foo');
|
|
120
|
-
assert.equal(count, 1, 'observer specified via brace expansion invoked on property change');
|
|
121
|
-
|
|
122
|
-
set(obj, 'bar', 'bar');
|
|
123
|
-
assert.equal(count, 2, 'observer specified via brace expansion invoked on property change');
|
|
124
|
-
|
|
125
|
-
set(obj, 'baz', 'baz');
|
|
126
|
-
assert.equal(count, 2, 'observer not invoked on unspecified property');
|
|
127
|
-
} else {
|
|
128
|
-
assert.expect(0);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
['@test observer specified declaratively via brace expansion should fire when dependent property changes'](
|
|
133
|
-
assert
|
|
134
|
-
) {
|
|
135
|
-
if (ENV.EXTEND_PROTOTYPES.Function) {
|
|
136
|
-
let obj = { baz: 'Initial' };
|
|
137
|
-
let count = 0;
|
|
138
|
-
|
|
139
|
-
defineProperty(
|
|
140
|
-
obj,
|
|
141
|
-
'foo',
|
|
142
|
-
computed(function() {
|
|
143
|
-
return get(this, 'bar').toLowerCase();
|
|
144
|
-
}).property('bar')
|
|
145
|
-
);
|
|
146
|
-
|
|
147
|
-
defineProperty(
|
|
148
|
-
obj,
|
|
149
|
-
'bar',
|
|
150
|
-
computed(function() {
|
|
151
|
-
return get(this, 'baz').toUpperCase();
|
|
152
|
-
}).property('baz')
|
|
153
|
-
);
|
|
154
|
-
|
|
155
|
-
mixin(obj, {
|
|
156
|
-
fooAndBarWatcher: function() {
|
|
157
|
-
count++;
|
|
158
|
-
}.observes('{foo,bar}'),
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
get(obj, 'foo');
|
|
162
|
-
set(obj, 'baz', 'Baz');
|
|
163
|
-
// fire once for foo, once for bar
|
|
164
|
-
assert.equal(
|
|
165
|
-
count,
|
|
166
|
-
2,
|
|
167
|
-
'observer specified via brace expansion invoked on dependent property change'
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
set(obj, 'quux', 'Quux');
|
|
171
|
-
assert.equal(count, 2, 'observer not fired on unspecified property');
|
|
172
|
-
} else {
|
|
173
|
-
assert.expect(0);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
['@test observers watching multiple properties via brace expansion should fire when the properties change'](
|
|
178
|
-
assert
|
|
179
|
-
) {
|
|
180
|
-
let obj = {};
|
|
181
|
-
let count = 0;
|
|
182
|
-
|
|
183
|
-
mixin(obj, {
|
|
184
|
-
observeFooAndBar: observer('{foo,bar}', function() {
|
|
185
|
-
count++;
|
|
186
|
-
}),
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
set(obj, 'foo', 'foo');
|
|
190
|
-
assert.equal(count, 1, 'observer specified via brace expansion invoked on property change');
|
|
191
|
-
|
|
192
|
-
set(obj, 'bar', 'bar');
|
|
193
|
-
assert.equal(count, 2, 'observer specified via brace expansion invoked on property change');
|
|
194
|
-
|
|
195
|
-
set(obj, 'baz', 'baz');
|
|
196
|
-
assert.equal(count, 2, 'observer not invoked on unspecified property');
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
['@test observers watching multiple properties via brace expansion should fire when dependent properties change'](
|
|
200
|
-
assert
|
|
201
|
-
) {
|
|
202
|
-
let obj = { baz: 'Initial' };
|
|
203
|
-
let count = 0;
|
|
204
|
-
|
|
205
|
-
defineProperty(
|
|
206
|
-
obj,
|
|
207
|
-
'foo',
|
|
208
|
-
computed(function() {
|
|
209
|
-
return get(this, 'bar').toLowerCase();
|
|
210
|
-
}).property('bar')
|
|
211
|
-
);
|
|
212
|
-
|
|
213
|
-
defineProperty(
|
|
214
|
-
obj,
|
|
215
|
-
'bar',
|
|
216
|
-
computed(function() {
|
|
217
|
-
return get(this, 'baz').toUpperCase();
|
|
218
|
-
}).property('baz')
|
|
219
|
-
);
|
|
220
|
-
|
|
221
|
-
mixin(obj, {
|
|
222
|
-
fooAndBarWatcher: observer('{foo,bar}', function() {
|
|
223
|
-
count++;
|
|
224
|
-
}),
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
get(obj, 'foo');
|
|
228
|
-
set(obj, 'baz', 'Baz');
|
|
229
|
-
// fire once for foo, once for bar
|
|
230
|
-
assert.equal(
|
|
231
|
-
count,
|
|
232
|
-
2,
|
|
233
|
-
'observer specified via brace expansion invoked on dependent property change'
|
|
234
|
-
);
|
|
235
|
-
|
|
236
|
-
set(obj, 'quux', 'Quux');
|
|
237
|
-
assert.equal(count, 2, 'observer not fired on unspecified property');
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
['@test nested observers should fire in order'](assert) {
|
|
241
|
-
let obj = { foo: 'foo', bar: 'bar' };
|
|
242
|
-
let fooCount = 0;
|
|
243
|
-
let barCount = 0;
|
|
244
|
-
|
|
245
|
-
addObserver(obj, 'foo', function() {
|
|
246
|
-
fooCount++;
|
|
247
|
-
});
|
|
248
|
-
addObserver(obj, 'bar', function() {
|
|
249
|
-
set(obj, 'foo', 'BAZ');
|
|
250
|
-
assert.equal(fooCount, 1, 'fooCount should have fired already');
|
|
251
|
-
barCount++;
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
set(obj, 'bar', 'BIFF');
|
|
255
|
-
assert.equal(barCount, 1, 'barCount should have fired');
|
|
256
|
-
assert.equal(fooCount, 1, 'foo should have fired');
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
['@test removing an chain observer on change should not fail'](assert) {
|
|
260
|
-
let foo = { bar: 'bar' };
|
|
261
|
-
let obj1 = { foo: foo };
|
|
262
|
-
let obj2 = { foo: foo };
|
|
263
|
-
let obj3 = { foo: foo };
|
|
264
|
-
let obj4 = { foo: foo };
|
|
265
|
-
let count1 = 0;
|
|
266
|
-
let count2 = 0;
|
|
267
|
-
let count3 = 0;
|
|
268
|
-
let count4 = 0;
|
|
269
|
-
|
|
270
|
-
function observer1() {
|
|
271
|
-
count1++;
|
|
272
|
-
}
|
|
273
|
-
function observer2() {
|
|
274
|
-
count2++;
|
|
275
|
-
}
|
|
276
|
-
function observer3() {
|
|
277
|
-
count3++;
|
|
278
|
-
removeObserver(obj1, 'foo.bar', observer1);
|
|
279
|
-
removeObserver(obj2, 'foo.bar', observer2);
|
|
280
|
-
removeObserver(obj4, 'foo.bar', observer4);
|
|
281
|
-
}
|
|
282
|
-
function observer4() {
|
|
283
|
-
count4++;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
addObserver(obj1, 'foo.bar', observer1);
|
|
287
|
-
addObserver(obj2, 'foo.bar', observer2);
|
|
288
|
-
addObserver(obj3, 'foo.bar', observer3);
|
|
289
|
-
addObserver(obj4, 'foo.bar', observer4);
|
|
290
|
-
|
|
291
|
-
set(foo, 'bar', 'baz');
|
|
292
|
-
|
|
293
|
-
assert.equal(count1, 1, 'observer1 fired');
|
|
294
|
-
assert.equal(count2, 1, 'observer2 fired');
|
|
295
|
-
assert.equal(count3, 1, 'observer3 fired');
|
|
296
|
-
assert.equal(count4, 0, 'observer4 did not fire');
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
['@test deferring property change notifications'](assert) {
|
|
300
|
-
let obj = { foo: 'foo' };
|
|
301
|
-
let fooCount = 0;
|
|
302
|
-
|
|
303
|
-
addObserver(obj, 'foo', function() {
|
|
304
|
-
fooCount++;
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
beginPropertyChanges();
|
|
308
|
-
set(obj, 'foo', 'BIFF');
|
|
309
|
-
set(obj, 'foo', 'BAZ');
|
|
310
|
-
endPropertyChanges();
|
|
311
|
-
|
|
312
|
-
assert.equal(fooCount, 1, 'foo should have fired once');
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
['@test deferring property change notifications safely despite exceptions'](assert) {
|
|
316
|
-
let obj = { foo: 'foo' };
|
|
317
|
-
let fooCount = 0;
|
|
318
|
-
let exc = new Error('Something unexpected happened!');
|
|
319
|
-
|
|
320
|
-
assert.expect(2);
|
|
321
|
-
addObserver(obj, 'foo', function() {
|
|
322
|
-
fooCount++;
|
|
323
|
-
});
|
|
324
|
-
|
|
325
|
-
try {
|
|
326
|
-
changeProperties(function() {
|
|
327
|
-
set(obj, 'foo', 'BIFF');
|
|
328
|
-
set(obj, 'foo', 'BAZ');
|
|
329
|
-
throw exc;
|
|
330
|
-
});
|
|
331
|
-
} catch (err) {
|
|
332
|
-
if (err !== exc) {
|
|
333
|
-
throw err;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
assert.equal(fooCount, 1, 'foo should have fired once');
|
|
338
|
-
|
|
339
|
-
changeProperties(function() {
|
|
340
|
-
set(obj, 'foo', 'BIFF2');
|
|
341
|
-
set(obj, 'foo', 'BAZ2');
|
|
342
|
-
});
|
|
343
|
-
|
|
344
|
-
assert.equal(fooCount, 2, 'foo should have fired again once');
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
['@test addObserver should propagate through prototype'](assert) {
|
|
348
|
-
let obj = { foo: 'foo', count: 0 };
|
|
349
|
-
let obj2;
|
|
350
|
-
|
|
351
|
-
addObserver(obj, 'foo', function() {
|
|
352
|
-
this.count++;
|
|
353
|
-
});
|
|
354
|
-
obj2 = Object.create(obj);
|
|
355
|
-
|
|
356
|
-
set(obj2, 'foo', 'bar');
|
|
357
|
-
|
|
358
|
-
assert.equal(obj2.count, 1, 'should have invoked observer on inherited');
|
|
359
|
-
assert.equal(obj.count, 0, 'should not have invoked observer on parent');
|
|
360
|
-
|
|
361
|
-
obj2.count = 0;
|
|
362
|
-
set(obj, 'foo', 'baz');
|
|
363
|
-
assert.equal(obj.count, 1, 'should have invoked observer on parent');
|
|
364
|
-
assert.equal(obj2.count, 0, 'should not have invoked observer on inherited');
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
['@test addObserver should respect targets with methods'](assert) {
|
|
368
|
-
let observed = { foo: 'foo' };
|
|
369
|
-
|
|
370
|
-
let target1 = {
|
|
371
|
-
count: 0,
|
|
372
|
-
|
|
373
|
-
didChange(obj, keyName) {
|
|
374
|
-
let value = get(obj, keyName);
|
|
375
|
-
assert.equal(this, target1, 'should invoke with this');
|
|
376
|
-
assert.equal(obj, observed, 'param1 should be observed object');
|
|
377
|
-
assert.equal(keyName, 'foo', 'param2 should be keyName');
|
|
378
|
-
assert.equal(value, 'BAZ', 'param3 should new value');
|
|
379
|
-
this.count++;
|
|
380
|
-
},
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
let target2 = {
|
|
384
|
-
count: 0,
|
|
385
|
-
|
|
386
|
-
didChange(obj, keyName) {
|
|
387
|
-
let value = get(obj, keyName);
|
|
388
|
-
assert.equal(this, target2, 'should invoke with this');
|
|
389
|
-
assert.equal(obj, observed, 'param1 should be observed object');
|
|
390
|
-
assert.equal(keyName, 'foo', 'param2 should be keyName');
|
|
391
|
-
assert.equal(value, 'BAZ', 'param3 should new value');
|
|
392
|
-
this.count++;
|
|
393
|
-
},
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
addObserver(observed, 'foo', target1, 'didChange');
|
|
397
|
-
addObserver(observed, 'foo', target2, target2.didChange);
|
|
398
|
-
|
|
399
|
-
set(observed, 'foo', 'BAZ');
|
|
400
|
-
assert.equal(target1.count, 1, 'target1 observer should have fired');
|
|
401
|
-
assert.equal(target2.count, 1, 'target2 observer should have fired');
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
['@test addObserver should allow multiple objects to observe a property'](assert) {
|
|
405
|
-
let observed = { foo: 'foo' };
|
|
406
|
-
|
|
407
|
-
let target1 = {
|
|
408
|
-
count: 0,
|
|
409
|
-
|
|
410
|
-
didChange() {
|
|
411
|
-
this.count++;
|
|
412
|
-
},
|
|
413
|
-
};
|
|
414
|
-
|
|
415
|
-
let target2 = {
|
|
416
|
-
count: 0,
|
|
417
|
-
|
|
418
|
-
didChange() {
|
|
419
|
-
this.count++;
|
|
420
|
-
},
|
|
421
|
-
};
|
|
422
|
-
|
|
423
|
-
addObserver(observed, 'foo', target1, 'didChange');
|
|
424
|
-
addObserver(observed, 'foo', target2, 'didChange');
|
|
425
|
-
|
|
426
|
-
set(observed, 'foo', 'BAZ');
|
|
427
|
-
assert.equal(target1.count, 1, 'target1 observer should have fired');
|
|
428
|
-
assert.equal(target2.count, 1, 'target2 observer should have fired');
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
);
|
|
432
|
-
|
|
433
|
-
// ..........................................................
|
|
434
|
-
// REMOVE OBSERVER
|
|
435
|
-
//
|
|
436
|
-
|
|
437
|
-
moduleFor(
|
|
438
|
-
'removeObserver',
|
|
439
|
-
class extends AbstractTestCase {
|
|
440
|
-
['@test removing observer should stop firing'](assert) {
|
|
441
|
-
let obj = {};
|
|
442
|
-
let count = 0;
|
|
443
|
-
function F() {
|
|
444
|
-
count++;
|
|
445
|
-
}
|
|
446
|
-
addObserver(obj, 'foo', F);
|
|
447
|
-
|
|
448
|
-
set(obj, 'foo', 'bar');
|
|
449
|
-
assert.equal(count, 1, 'should have invoked observer');
|
|
450
|
-
|
|
451
|
-
removeObserver(obj, 'foo', F);
|
|
452
|
-
|
|
453
|
-
set(obj, 'foo', 'baz');
|
|
454
|
-
assert.equal(count, 1, "removed observer shouldn't fire");
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
['@test local observers can be removed'](assert) {
|
|
458
|
-
let barObserved = 0;
|
|
459
|
-
|
|
460
|
-
let MyMixin = Mixin.create({
|
|
461
|
-
foo1: observer('bar', function() {
|
|
462
|
-
barObserved++;
|
|
463
|
-
}),
|
|
464
|
-
|
|
465
|
-
foo2: observer('bar', function() {
|
|
466
|
-
barObserved++;
|
|
467
|
-
}),
|
|
468
|
-
});
|
|
469
|
-
|
|
470
|
-
let obj = {};
|
|
471
|
-
MyMixin.apply(obj);
|
|
472
|
-
|
|
473
|
-
set(obj, 'bar', 'HI!');
|
|
474
|
-
assert.equal(barObserved, 2, 'precond - observers should be fired');
|
|
475
|
-
|
|
476
|
-
removeObserver(obj, 'bar', null, 'foo1');
|
|
477
|
-
|
|
478
|
-
barObserved = 0;
|
|
479
|
-
set(obj, 'bar', 'HI AGAIN!');
|
|
480
|
-
|
|
481
|
-
assert.equal(barObserved, 1, 'removed observers should not be called');
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
['@test removeObserver should respect targets with methods'](assert) {
|
|
485
|
-
let observed = { foo: 'foo' };
|
|
486
|
-
|
|
487
|
-
let target1 = {
|
|
488
|
-
count: 0,
|
|
489
|
-
|
|
490
|
-
didChange() {
|
|
491
|
-
this.count++;
|
|
492
|
-
},
|
|
493
|
-
};
|
|
494
|
-
|
|
495
|
-
let target2 = {
|
|
496
|
-
count: 0,
|
|
497
|
-
|
|
498
|
-
didChange() {
|
|
499
|
-
this.count++;
|
|
500
|
-
},
|
|
501
|
-
};
|
|
502
|
-
|
|
503
|
-
addObserver(observed, 'foo', target1, 'didChange');
|
|
504
|
-
addObserver(observed, 'foo', target2, target2.didChange);
|
|
505
|
-
|
|
506
|
-
set(observed, 'foo', 'BAZ');
|
|
507
|
-
assert.equal(target1.count, 1, 'target1 observer should have fired');
|
|
508
|
-
assert.equal(target2.count, 1, 'target2 observer should have fired');
|
|
509
|
-
|
|
510
|
-
removeObserver(observed, 'foo', target1, 'didChange');
|
|
511
|
-
removeObserver(observed, 'foo', target2, target2.didChange);
|
|
512
|
-
|
|
513
|
-
target1.count = target2.count = 0;
|
|
514
|
-
set(observed, 'foo', 'BAZ');
|
|
515
|
-
assert.equal(target1.count, 0, 'target1 observer should not fire again');
|
|
516
|
-
assert.equal(target2.count, 0, 'target2 observer should not fire again');
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
);
|
|
520
|
-
|
|
521
|
-
// ..........................................................
|
|
522
|
-
// CHAINED OBSERVERS
|
|
523
|
-
//
|
|
524
|
-
|
|
525
|
-
let obj, count;
|
|
526
|
-
|
|
527
|
-
moduleFor(
|
|
528
|
-
'addObserver - dependentkey with chained properties',
|
|
529
|
-
class extends AbstractTestCase {
|
|
530
|
-
beforeEach() {
|
|
531
|
-
obj = {
|
|
532
|
-
foo: {
|
|
533
|
-
bar: {
|
|
534
|
-
baz: {
|
|
535
|
-
biff: 'BIFF',
|
|
536
|
-
},
|
|
537
|
-
},
|
|
538
|
-
},
|
|
539
|
-
Capital: {
|
|
540
|
-
foo: {
|
|
541
|
-
bar: {
|
|
542
|
-
baz: {
|
|
543
|
-
biff: 'BIFF',
|
|
544
|
-
},
|
|
545
|
-
},
|
|
546
|
-
},
|
|
547
|
-
},
|
|
548
|
-
};
|
|
549
|
-
|
|
550
|
-
count = 0;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
afterEach() {
|
|
554
|
-
obj = count = null;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
['@test depending on a chain with a computed property'](assert) {
|
|
558
|
-
defineProperty(
|
|
559
|
-
obj,
|
|
560
|
-
'computed',
|
|
561
|
-
computed(function() {
|
|
562
|
-
return { foo: 'bar' };
|
|
563
|
-
})
|
|
564
|
-
);
|
|
565
|
-
|
|
566
|
-
let changed = 0;
|
|
567
|
-
addObserver(obj, 'computed.foo', function() {
|
|
568
|
-
changed++;
|
|
569
|
-
});
|
|
570
|
-
|
|
571
|
-
assert.equal(
|
|
572
|
-
getCachedValueFor(obj, 'computed'),
|
|
573
|
-
undefined,
|
|
574
|
-
'addObserver should not compute CP'
|
|
575
|
-
);
|
|
576
|
-
|
|
577
|
-
set(obj, 'computed.foo', 'baz');
|
|
578
|
-
|
|
579
|
-
assert.equal(changed, 1, 'should fire observer');
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
['@test depending on a simple chain'](assert) {
|
|
583
|
-
let val;
|
|
584
|
-
addObserver(obj, 'foo.bar.baz.biff', function(target, key) {
|
|
585
|
-
val = get(target, key);
|
|
586
|
-
count++;
|
|
587
|
-
});
|
|
588
|
-
|
|
589
|
-
set(get(obj, 'foo.bar.baz'), 'biff', 'BUZZ');
|
|
590
|
-
assert.equal(val, 'BUZZ');
|
|
591
|
-
assert.equal(count, 1);
|
|
592
|
-
|
|
593
|
-
set(get(obj, 'foo.bar'), 'baz', { biff: 'BLARG' });
|
|
594
|
-
assert.equal(val, 'BLARG');
|
|
595
|
-
assert.equal(count, 2);
|
|
596
|
-
|
|
597
|
-
set(get(obj, 'foo'), 'bar', { baz: { biff: 'BOOM' } });
|
|
598
|
-
assert.equal(val, 'BOOM');
|
|
599
|
-
assert.equal(count, 3);
|
|
600
|
-
|
|
601
|
-
set(obj, 'foo', { bar: { baz: { biff: 'BLARG' } } });
|
|
602
|
-
assert.equal(val, 'BLARG');
|
|
603
|
-
assert.equal(count, 4);
|
|
604
|
-
|
|
605
|
-
set(get(obj, 'foo.bar.baz'), 'biff', 'BUZZ');
|
|
606
|
-
assert.equal(val, 'BUZZ');
|
|
607
|
-
assert.equal(count, 5);
|
|
608
|
-
|
|
609
|
-
let foo = get(obj, 'foo');
|
|
610
|
-
|
|
611
|
-
set(obj, 'foo', 'BOO');
|
|
612
|
-
assert.equal(val, undefined);
|
|
613
|
-
assert.equal(count, 6);
|
|
614
|
-
|
|
615
|
-
set(foo.bar.baz, 'biff', 'BOOM');
|
|
616
|
-
assert.equal(count, 6, 'should be not have invoked observer');
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
['@test depending on a chain with a capitalized first key'](assert) {
|
|
620
|
-
let val;
|
|
621
|
-
|
|
622
|
-
addObserver(obj, 'Capital.foo.bar.baz.biff', function(target, key) {
|
|
623
|
-
val = get(obj, key);
|
|
624
|
-
count++;
|
|
625
|
-
});
|
|
626
|
-
|
|
627
|
-
set(get(obj, 'Capital.foo.bar.baz'), 'biff', 'BUZZ');
|
|
628
|
-
assert.equal(val, 'BUZZ');
|
|
629
|
-
assert.equal(count, 1);
|
|
630
|
-
|
|
631
|
-
set(get(obj, 'Capital.foo.bar'), 'baz', { biff: 'BLARG' });
|
|
632
|
-
assert.equal(val, 'BLARG');
|
|
633
|
-
assert.equal(count, 2);
|
|
634
|
-
|
|
635
|
-
set(get(obj, 'Capital.foo'), 'bar', { baz: { biff: 'BOOM' } });
|
|
636
|
-
assert.equal(val, 'BOOM');
|
|
637
|
-
assert.equal(count, 3);
|
|
638
|
-
|
|
639
|
-
set(obj, 'Capital.foo', { bar: { baz: { biff: 'BLARG' } } });
|
|
640
|
-
assert.equal(val, 'BLARG');
|
|
641
|
-
assert.equal(count, 4);
|
|
642
|
-
|
|
643
|
-
set(get(obj, 'Capital.foo.bar.baz'), 'biff', 'BUZZ');
|
|
644
|
-
assert.equal(val, 'BUZZ');
|
|
645
|
-
assert.equal(count, 5);
|
|
646
|
-
|
|
647
|
-
let foo = get(obj, 'foo');
|
|
648
|
-
|
|
649
|
-
set(obj, 'Capital.foo', 'BOO');
|
|
650
|
-
assert.equal(val, undefined);
|
|
651
|
-
assert.equal(count, 6);
|
|
652
|
-
|
|
653
|
-
set(foo.bar.baz, 'biff', 'BOOM');
|
|
654
|
-
assert.equal(count, 6, 'should be not have invoked observer');
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
);
|
|
658
|
-
|
|
659
|
-
// ..........................................................
|
|
660
|
-
// SETTING IDENTICAL VALUES
|
|
661
|
-
//
|
|
662
|
-
|
|
663
|
-
moduleFor(
|
|
664
|
-
'props/observer_test - setting identical values',
|
|
665
|
-
class extends AbstractTestCase {
|
|
666
|
-
['@test setting simple prop should not trigger'](assert) {
|
|
667
|
-
let obj = { foo: 'bar' };
|
|
668
|
-
let count = 0;
|
|
669
|
-
|
|
670
|
-
addObserver(obj, 'foo', function() {
|
|
671
|
-
count++;
|
|
672
|
-
});
|
|
673
|
-
|
|
674
|
-
set(obj, 'foo', 'bar');
|
|
675
|
-
assert.equal(count, 0, 'should not trigger observer');
|
|
676
|
-
|
|
677
|
-
set(obj, 'foo', 'baz');
|
|
678
|
-
assert.equal(count, 1, 'should trigger observer');
|
|
679
|
-
|
|
680
|
-
set(obj, 'foo', 'baz');
|
|
681
|
-
assert.equal(count, 1, 'should not trigger observer again');
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
// The issue here is when a computed property is directly set with a value, then has a
|
|
685
|
-
// dependent key change (which triggers a cache expiration and recomputation), observers will
|
|
686
|
-
// not be fired if the CP setter is called with the last set value.
|
|
687
|
-
['@test setting a cached computed property whose value has changed should trigger'](assert) {
|
|
688
|
-
let obj = {};
|
|
689
|
-
|
|
690
|
-
defineProperty(
|
|
691
|
-
obj,
|
|
692
|
-
'foo',
|
|
693
|
-
computed({
|
|
694
|
-
get: function() {
|
|
695
|
-
return get(this, 'baz');
|
|
696
|
-
},
|
|
697
|
-
set: function(key, value) {
|
|
698
|
-
return value;
|
|
699
|
-
},
|
|
700
|
-
}).property('baz')
|
|
701
|
-
);
|
|
702
|
-
|
|
703
|
-
let count = 0;
|
|
704
|
-
|
|
705
|
-
addObserver(obj, 'foo', function() {
|
|
706
|
-
count++;
|
|
707
|
-
});
|
|
708
|
-
|
|
709
|
-
set(obj, 'foo', 'bar');
|
|
710
|
-
assert.equal(count, 1);
|
|
711
|
-
assert.equal(get(obj, 'foo'), 'bar');
|
|
712
|
-
|
|
713
|
-
set(obj, 'baz', 'qux');
|
|
714
|
-
assert.equal(count, 2);
|
|
715
|
-
assert.equal(get(obj, 'foo'), 'qux');
|
|
716
|
-
|
|
717
|
-
get(obj, 'foo');
|
|
718
|
-
set(obj, 'foo', 'bar');
|
|
719
|
-
assert.equal(count, 3);
|
|
720
|
-
assert.equal(get(obj, 'foo'), 'bar');
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
);
|
|
724
|
-
|
|
725
|
-
moduleFor(
|
|
726
|
-
'changeProperties',
|
|
727
|
-
class extends AbstractTestCase {
|
|
728
|
-
['@test observers added/removed during changeProperties should do the right thing.'](assert) {
|
|
729
|
-
let obj = {
|
|
730
|
-
foo: 0,
|
|
731
|
-
};
|
|
732
|
-
function Observer() {
|
|
733
|
-
this.didChangeCount = 0;
|
|
734
|
-
}
|
|
735
|
-
Observer.prototype = {
|
|
736
|
-
add() {
|
|
737
|
-
addObserver(obj, 'foo', this, 'didChange');
|
|
738
|
-
},
|
|
739
|
-
remove() {
|
|
740
|
-
removeObserver(obj, 'foo', this, 'didChange');
|
|
741
|
-
},
|
|
742
|
-
didChange() {
|
|
743
|
-
this.didChangeCount++;
|
|
744
|
-
},
|
|
745
|
-
};
|
|
746
|
-
let addedBeforeFirstChangeObserver = new Observer();
|
|
747
|
-
let addedAfterFirstChangeObserver = new Observer();
|
|
748
|
-
let addedAfterLastChangeObserver = new Observer();
|
|
749
|
-
let removedBeforeFirstChangeObserver = new Observer();
|
|
750
|
-
let removedBeforeLastChangeObserver = new Observer();
|
|
751
|
-
let removedAfterLastChangeObserver = new Observer();
|
|
752
|
-
removedBeforeFirstChangeObserver.add();
|
|
753
|
-
removedBeforeLastChangeObserver.add();
|
|
754
|
-
removedAfterLastChangeObserver.add();
|
|
755
|
-
changeProperties(function() {
|
|
756
|
-
removedBeforeFirstChangeObserver.remove();
|
|
757
|
-
addedBeforeFirstChangeObserver.add();
|
|
758
|
-
|
|
759
|
-
set(obj, 'foo', 1);
|
|
760
|
-
|
|
761
|
-
assert.equal(
|
|
762
|
-
addedBeforeFirstChangeObserver.didChangeCount,
|
|
763
|
-
0,
|
|
764
|
-
'addObserver called before the first change is deferred'
|
|
765
|
-
);
|
|
766
|
-
|
|
767
|
-
addedAfterFirstChangeObserver.add();
|
|
768
|
-
removedBeforeLastChangeObserver.remove();
|
|
769
|
-
|
|
770
|
-
set(obj, 'foo', 2);
|
|
771
|
-
|
|
772
|
-
assert.equal(
|
|
773
|
-
addedAfterFirstChangeObserver.didChangeCount,
|
|
774
|
-
0,
|
|
775
|
-
'addObserver called after the first change is deferred'
|
|
776
|
-
);
|
|
777
|
-
|
|
778
|
-
addedAfterLastChangeObserver.add();
|
|
779
|
-
removedAfterLastChangeObserver.remove();
|
|
780
|
-
});
|
|
781
|
-
|
|
782
|
-
assert.equal(
|
|
783
|
-
removedBeforeFirstChangeObserver.didChangeCount,
|
|
784
|
-
0,
|
|
785
|
-
'removeObserver called before the first change sees none'
|
|
786
|
-
);
|
|
787
|
-
assert.equal(
|
|
788
|
-
addedBeforeFirstChangeObserver.didChangeCount,
|
|
789
|
-
1,
|
|
790
|
-
'addObserver called before the first change sees only 1'
|
|
791
|
-
);
|
|
792
|
-
assert.equal(
|
|
793
|
-
addedAfterFirstChangeObserver.didChangeCount,
|
|
794
|
-
1,
|
|
795
|
-
'addObserver called after the first change sees 1'
|
|
796
|
-
);
|
|
797
|
-
assert.equal(
|
|
798
|
-
addedAfterLastChangeObserver.didChangeCount,
|
|
799
|
-
1,
|
|
800
|
-
'addObserver called after the last change sees 1'
|
|
801
|
-
);
|
|
802
|
-
assert.equal(
|
|
803
|
-
removedBeforeLastChangeObserver.didChangeCount,
|
|
804
|
-
0,
|
|
805
|
-
'removeObserver called before the last change sees none'
|
|
806
|
-
);
|
|
807
|
-
assert.equal(
|
|
808
|
-
removedAfterLastChangeObserver.didChangeCount,
|
|
809
|
-
0,
|
|
810
|
-
'removeObserver called after the last change sees none'
|
|
811
|
-
);
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
['@test calling changeProperties while executing deferred observers works correctly'](assert) {
|
|
815
|
-
let obj = { foo: 0 };
|
|
816
|
-
let fooDidChange = 0;
|
|
817
|
-
|
|
818
|
-
addObserver(obj, 'foo', () => {
|
|
819
|
-
fooDidChange++;
|
|
820
|
-
changeProperties(() => {});
|
|
821
|
-
});
|
|
822
|
-
|
|
823
|
-
changeProperties(() => {
|
|
824
|
-
set(obj, 'foo', 1);
|
|
825
|
-
});
|
|
826
|
-
|
|
827
|
-
assert.equal(fooDidChange, 1);
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
);
|
|
831
|
-
|
|
832
|
-
moduleFor(
|
|
833
|
-
'Keys behavior with observers',
|
|
834
|
-
class extends AbstractTestCase {
|
|
835
|
-
['@test should not leak properties on the prototype'](assert) {
|
|
836
|
-
function Beer() {}
|
|
837
|
-
Beer.prototype.type = 'ipa';
|
|
838
|
-
|
|
839
|
-
let beer = new Beer();
|
|
840
|
-
|
|
841
|
-
addObserver(beer, 'type', K);
|
|
842
|
-
assert.deepEqual(Object.keys(beer), []);
|
|
843
|
-
removeObserver(beer, 'type', K);
|
|
844
|
-
}
|
|
845
|
-
|
|
846
|
-
['@test observing a non existent property'](assert) {
|
|
847
|
-
function Beer() {}
|
|
848
|
-
Beer.prototype.type = 'ipa';
|
|
849
|
-
|
|
850
|
-
let beer = new Beer();
|
|
851
|
-
|
|
852
|
-
addObserver(beer, 'brand', K);
|
|
853
|
-
|
|
854
|
-
assert.deepEqual(Object.keys(beer), []);
|
|
855
|
-
|
|
856
|
-
set(beer, 'brand', 'Corona');
|
|
857
|
-
assert.deepEqual(Object.keys(beer), ['brand']);
|
|
858
|
-
|
|
859
|
-
removeObserver(beer, 'brand', K);
|
|
860
|
-
}
|
|
861
|
-
|
|
862
|
-
['@test with observers switched on and off'](assert) {
|
|
863
|
-
function Beer() {}
|
|
864
|
-
Beer.prototype.type = 'ipa';
|
|
865
|
-
|
|
866
|
-
let beer = new Beer();
|
|
867
|
-
|
|
868
|
-
addObserver(beer, 'type', K);
|
|
869
|
-
removeObserver(beer, 'type', K);
|
|
870
|
-
|
|
871
|
-
assert.deepEqual(Object.keys(beer), []);
|
|
872
|
-
}
|
|
873
|
-
|
|
874
|
-
['@test observers switched on and off with setter in between'](assert) {
|
|
875
|
-
function Beer() {}
|
|
876
|
-
Beer.prototype.type = 'ipa';
|
|
877
|
-
|
|
878
|
-
let beer = new Beer();
|
|
879
|
-
|
|
880
|
-
addObserver(beer, 'type', K);
|
|
881
|
-
set(beer, 'type', 'ale');
|
|
882
|
-
removeObserver(beer, 'type', K);
|
|
883
|
-
|
|
884
|
-
assert.deepEqual(Object.keys(beer), ['type']);
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
['@test observer switched on and off and then setter'](assert) {
|
|
888
|
-
function Beer() {}
|
|
889
|
-
Beer.prototype.type = 'ipa';
|
|
890
|
-
|
|
891
|
-
let beer = new Beer();
|
|
892
|
-
|
|
893
|
-
addObserver(beer, 'type', K);
|
|
894
|
-
removeObserver(beer, 'type', K);
|
|
895
|
-
set(beer, 'type', 'ale');
|
|
896
|
-
|
|
897
|
-
assert.deepEqual(Object.keys(beer), ['type']);
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
['@test observers switched on and off with setter in between (observed property is not shadowing)'](
|
|
901
|
-
assert
|
|
902
|
-
) {
|
|
903
|
-
function Beer() {}
|
|
904
|
-
|
|
905
|
-
let beer = new Beer();
|
|
906
|
-
set(beer, 'type', 'ale');
|
|
907
|
-
assert.deepEqual(Object.keys(beer), ['type'], 'only set');
|
|
908
|
-
|
|
909
|
-
let otherBeer = new Beer();
|
|
910
|
-
addObserver(otherBeer, 'type', K);
|
|
911
|
-
set(otherBeer, 'type', 'ale');
|
|
912
|
-
assert.deepEqual(Object.keys(otherBeer), ['type'], 'addObserver -> set');
|
|
913
|
-
|
|
914
|
-
let yetAnotherBeer = new Beer();
|
|
915
|
-
addObserver(yetAnotherBeer, 'type', K);
|
|
916
|
-
set(yetAnotherBeer, 'type', 'ale');
|
|
917
|
-
removeObserver(beer, 'type', K);
|
|
918
|
-
assert.deepEqual(
|
|
919
|
-
Object.keys(yetAnotherBeer),
|
|
920
|
-
['type'],
|
|
921
|
-
'addObserver -> set -> removeObserver'
|
|
922
|
-
);
|
|
923
|
-
|
|
924
|
-
let itsMyLastBeer = new Beer();
|
|
925
|
-
set(itsMyLastBeer, 'type', 'ale');
|
|
926
|
-
removeObserver(beer, 'type', K);
|
|
927
|
-
assert.deepEqual(Object.keys(itsMyLastBeer), ['type'], 'set -> removeObserver');
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
['@test observers switched on and off with setter in between (observed property is shadowing one on the prototype)'](
|
|
931
|
-
assert
|
|
932
|
-
) {
|
|
933
|
-
function Beer() {}
|
|
934
|
-
Beer.prototype.type = 'ipa';
|
|
935
|
-
|
|
936
|
-
let beer = new Beer();
|
|
937
|
-
set(beer, 'type', 'ale');
|
|
938
|
-
assert.deepEqual(Object.keys(beer), ['type'], 'after set');
|
|
939
|
-
|
|
940
|
-
let otherBeer = new Beer();
|
|
941
|
-
addObserver(otherBeer, 'type', K);
|
|
942
|
-
set(otherBeer, 'type', 'ale');
|
|
943
|
-
assert.deepEqual(Object.keys(otherBeer), ['type'], 'addObserver -> set');
|
|
944
|
-
|
|
945
|
-
let yetAnotherBeer = new Beer();
|
|
946
|
-
addObserver(yetAnotherBeer, 'type', K);
|
|
947
|
-
set(yetAnotherBeer, 'type', 'ale');
|
|
948
|
-
removeObserver(beer, 'type', K);
|
|
949
|
-
assert.deepEqual(
|
|
950
|
-
Object.keys(yetAnotherBeer),
|
|
951
|
-
['type'],
|
|
952
|
-
'addObserver -> set -> removeObserver'
|
|
953
|
-
);
|
|
954
|
-
|
|
955
|
-
let itsMyLastBeer = new Beer();
|
|
956
|
-
set(itsMyLastBeer, 'type', 'ale');
|
|
957
|
-
removeObserver(beer, 'type', K);
|
|
958
|
-
assert.deepEqual(Object.keys(itsMyLastBeer), ['type'], 'set -> removeObserver');
|
|
959
|
-
}
|
|
960
|
-
}
|
|
961
|
-
);
|