discourse-ember-source 3.5.1.1 → 3.5.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/dist/es/container/index.js
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Public API for the container is still in flux.
|
3
|
-
The public API, specified on the application namespace should be considered the stable API.
|
4
|
-
// @module container
|
5
|
-
@private
|
6
|
-
*/
|
7
|
-
export { default as Registry, privatize } from './lib/registry';
|
8
|
-
export { default as Container, FACTORY_FOR } from './lib/container';
|
@@ -1,437 +0,0 @@
|
|
1
|
-
import { EMBER_MODULE_UNIFICATION } from '@ember/canary-features';
|
2
|
-
import { assert } from '@ember/debug';
|
3
|
-
import { assign } from '@ember/polyfills';
|
4
|
-
import { DEBUG } from '@glimmer/env';
|
5
|
-
import { OWNER, setOwner } from 'ember-owner';
|
6
|
-
import { dictionary, HAS_NATIVE_PROXY } from 'ember-utils';
|
7
|
-
let leakTracking;
|
8
|
-
let containers;
|
9
|
-
if (DEBUG) {
|
10
|
-
// requires v8
|
11
|
-
// chrome --js-flags="--allow-natives-syntax --expose-gc"
|
12
|
-
// node --allow-natives-syntax --expose-gc
|
13
|
-
try {
|
14
|
-
if (typeof gc === 'function') {
|
15
|
-
leakTracking = (() => {
|
16
|
-
// avoid syntax errors when --allow-natives-syntax not present
|
17
|
-
let GetWeakSetValues = new Function('weakSet', 'return %GetWeakSetValues(weakSet, 0)');
|
18
|
-
containers = new WeakSet();
|
19
|
-
return {
|
20
|
-
hasContainers() {
|
21
|
-
gc();
|
22
|
-
return GetWeakSetValues(containers).length > 0;
|
23
|
-
},
|
24
|
-
reset() {
|
25
|
-
let values = GetWeakSetValues(containers);
|
26
|
-
for (let i = 0; i < values.length; i++) {
|
27
|
-
containers.delete(values[i]);
|
28
|
-
}
|
29
|
-
},
|
30
|
-
};
|
31
|
-
})();
|
32
|
-
}
|
33
|
-
}
|
34
|
-
catch (e) {
|
35
|
-
// ignore
|
36
|
-
}
|
37
|
-
}
|
38
|
-
/**
|
39
|
-
A container used to instantiate and cache objects.
|
40
|
-
|
41
|
-
Every `Container` must be associated with a `Registry`, which is referenced
|
42
|
-
to determine the factory and options that should be used to instantiate
|
43
|
-
objects.
|
44
|
-
|
45
|
-
The public API for `Container` is still in flux and should not be considered
|
46
|
-
stable.
|
47
|
-
|
48
|
-
@private
|
49
|
-
@class Container
|
50
|
-
*/
|
51
|
-
export default class Container {
|
52
|
-
constructor(registry, options = {}) {
|
53
|
-
this.registry = registry;
|
54
|
-
this.owner = options.owner || null;
|
55
|
-
this.cache = dictionary(options.cache || null);
|
56
|
-
this.factoryManagerCache = dictionary(options.factoryManagerCache || null);
|
57
|
-
this.isDestroyed = false;
|
58
|
-
this.isDestroying = false;
|
59
|
-
if (DEBUG) {
|
60
|
-
this.validationCache = dictionary(options.validationCache || null);
|
61
|
-
if (containers !== undefined) {
|
62
|
-
containers.add(this);
|
63
|
-
}
|
64
|
-
}
|
65
|
-
}
|
66
|
-
/**
|
67
|
-
@private
|
68
|
-
@property registry
|
69
|
-
@type Registry
|
70
|
-
@since 1.11.0
|
71
|
-
*/
|
72
|
-
/**
|
73
|
-
@private
|
74
|
-
@property cache
|
75
|
-
@type InheritingDict
|
76
|
-
*/
|
77
|
-
/**
|
78
|
-
@private
|
79
|
-
@property validationCache
|
80
|
-
@type InheritingDict
|
81
|
-
*/
|
82
|
-
/**
|
83
|
-
Given a fullName return a corresponding instance.
|
84
|
-
The default behavior is for lookup to return a singleton instance.
|
85
|
-
The singleton is scoped to the container, allowing multiple containers
|
86
|
-
to all have their own locally scoped singletons.
|
87
|
-
```javascript
|
88
|
-
let registry = new Registry();
|
89
|
-
let container = registry.container();
|
90
|
-
registry.register('api:twitter', Twitter);
|
91
|
-
let twitter = container.lookup('api:twitter');
|
92
|
-
twitter instanceof Twitter; // => true
|
93
|
-
// by default the container will return singletons
|
94
|
-
let twitter2 = container.lookup('api:twitter');
|
95
|
-
twitter2 instanceof Twitter; // => true
|
96
|
-
twitter === twitter2; //=> true
|
97
|
-
```
|
98
|
-
If singletons are not wanted, an optional flag can be provided at lookup.
|
99
|
-
```javascript
|
100
|
-
let registry = new Registry();
|
101
|
-
let container = registry.container();
|
102
|
-
registry.register('api:twitter', Twitter);
|
103
|
-
let twitter = container.lookup('api:twitter', { singleton: false });
|
104
|
-
let twitter2 = container.lookup('api:twitter', { singleton: false });
|
105
|
-
twitter === twitter2; //=> false
|
106
|
-
```
|
107
|
-
@private
|
108
|
-
@method lookup
|
109
|
-
@param {String} fullName
|
110
|
-
@param {Object} [options]
|
111
|
-
@param {String} [options.source] The fullname of the request source (used for local lookup)
|
112
|
-
@return {any}
|
113
|
-
*/
|
114
|
-
lookup(fullName, options) {
|
115
|
-
assert('expected container not to be destroyed', !this.isDestroyed);
|
116
|
-
assert('fullName must be a proper full name', this.registry.isValidFullName(fullName));
|
117
|
-
return lookup(this, this.registry.normalize(fullName), options);
|
118
|
-
}
|
119
|
-
/**
|
120
|
-
A depth first traversal, destroying the container, its descendant containers and all
|
121
|
-
their managed objects.
|
122
|
-
@private
|
123
|
-
@method destroy
|
124
|
-
*/
|
125
|
-
destroy() {
|
126
|
-
destroyDestroyables(this);
|
127
|
-
this.isDestroying = true;
|
128
|
-
}
|
129
|
-
finalizeDestroy() {
|
130
|
-
resetCache(this);
|
131
|
-
this.isDestroyed = true;
|
132
|
-
}
|
133
|
-
/**
|
134
|
-
Clear either the entire cache or just the cache for a particular key.
|
135
|
-
|
136
|
-
@private
|
137
|
-
@method reset
|
138
|
-
@param {String} fullName optional key to reset; if missing, resets everything
|
139
|
-
*/
|
140
|
-
reset(fullName) {
|
141
|
-
if (this.isDestroyed)
|
142
|
-
return;
|
143
|
-
if (fullName === undefined) {
|
144
|
-
destroyDestroyables(this);
|
145
|
-
resetCache(this);
|
146
|
-
}
|
147
|
-
else {
|
148
|
-
resetMember(this, this.registry.normalize(fullName));
|
149
|
-
}
|
150
|
-
}
|
151
|
-
/**
|
152
|
-
Returns an object that can be used to provide an owner to a
|
153
|
-
manually created instance.
|
154
|
-
@private
|
155
|
-
@method ownerInjection
|
156
|
-
@returns { Object }
|
157
|
-
*/
|
158
|
-
ownerInjection() {
|
159
|
-
return { [OWNER]: this.owner };
|
160
|
-
}
|
161
|
-
/**
|
162
|
-
Given a fullName, return the corresponding factory. The consumer of the factory
|
163
|
-
is responsible for the destruction of any factory instances, as there is no
|
164
|
-
way for the container to ensure instances are destroyed when it itself is
|
165
|
-
destroyed.
|
166
|
-
@public
|
167
|
-
@method factoryFor
|
168
|
-
@param {String} fullName
|
169
|
-
@param {Object} [options]
|
170
|
-
@param {String} [options.source] The fullname of the request source (used for local lookup)
|
171
|
-
@return {any}
|
172
|
-
*/
|
173
|
-
factoryFor(fullName, options = {}) {
|
174
|
-
assert('expected container not to be destroyed', !this.isDestroyed);
|
175
|
-
let normalizedName = this.registry.normalize(fullName);
|
176
|
-
assert('fullName must be a proper full name', this.registry.isValidFullName(normalizedName));
|
177
|
-
assert('EMBER_MODULE_UNIFICATION must be enabled to pass a namespace option to factoryFor', EMBER_MODULE_UNIFICATION || !options.namespace);
|
178
|
-
if (options.source || options.namespace) {
|
179
|
-
normalizedName = this.registry.expandLocalLookup(fullName, options);
|
180
|
-
if (!normalizedName) {
|
181
|
-
return;
|
182
|
-
}
|
183
|
-
}
|
184
|
-
return factoryFor(this, normalizedName, fullName);
|
185
|
-
}
|
186
|
-
}
|
187
|
-
if (DEBUG) {
|
188
|
-
Container._leakTracking = leakTracking;
|
189
|
-
}
|
190
|
-
/*
|
191
|
-
* Wrap a factory manager in a proxy which will not permit properties to be
|
192
|
-
* set on the manager.
|
193
|
-
*/
|
194
|
-
function wrapManagerInDeprecationProxy(manager) {
|
195
|
-
if (HAS_NATIVE_PROXY) {
|
196
|
-
let validator = {
|
197
|
-
set(_obj, prop) {
|
198
|
-
throw new Error(`You attempted to set "${prop}" on a factory manager created by container#factoryFor. A factory manager is a read-only construct.`);
|
199
|
-
},
|
200
|
-
};
|
201
|
-
// Note:
|
202
|
-
// We have to proxy access to the manager here so that private property
|
203
|
-
// access doesn't cause the above errors to occur.
|
204
|
-
let m = manager;
|
205
|
-
let proxiedManager = {
|
206
|
-
class: m.class,
|
207
|
-
create(props) {
|
208
|
-
return m.create(props);
|
209
|
-
},
|
210
|
-
};
|
211
|
-
let proxy = new Proxy(proxiedManager, validator);
|
212
|
-
FACTORY_FOR.set(proxy, manager);
|
213
|
-
}
|
214
|
-
return manager;
|
215
|
-
}
|
216
|
-
function isSingleton(container, fullName) {
|
217
|
-
return container.registry.getOption(fullName, 'singleton') !== false;
|
218
|
-
}
|
219
|
-
function isInstantiatable(container, fullName) {
|
220
|
-
return container.registry.getOption(fullName, 'instantiate') !== false;
|
221
|
-
}
|
222
|
-
function lookup(container, fullName, options = {}) {
|
223
|
-
assert('EMBER_MODULE_UNIFICATION must be enabled to pass a namespace option to lookup', EMBER_MODULE_UNIFICATION || !options.namespace);
|
224
|
-
let normalizedName = fullName;
|
225
|
-
if (options.source || options.namespace) {
|
226
|
-
normalizedName = container.registry.expandLocalLookup(fullName, options);
|
227
|
-
if (!normalizedName) {
|
228
|
-
return;
|
229
|
-
}
|
230
|
-
}
|
231
|
-
if (options.singleton !== false) {
|
232
|
-
let cached = container.cache[normalizedName];
|
233
|
-
if (cached !== undefined) {
|
234
|
-
return cached;
|
235
|
-
}
|
236
|
-
}
|
237
|
-
return instantiateFactory(container, normalizedName, fullName, options);
|
238
|
-
}
|
239
|
-
function factoryFor(container, normalizedName, fullName) {
|
240
|
-
let cached = container.factoryManagerCache[normalizedName];
|
241
|
-
if (cached !== undefined) {
|
242
|
-
return cached;
|
243
|
-
}
|
244
|
-
let factory = container.registry.resolve(normalizedName);
|
245
|
-
if (factory === undefined) {
|
246
|
-
return;
|
247
|
-
}
|
248
|
-
if (DEBUG && factory && typeof factory._onLookup === 'function') {
|
249
|
-
factory._onLookup(fullName);
|
250
|
-
}
|
251
|
-
let manager = new FactoryManager(container, factory, fullName, normalizedName);
|
252
|
-
if (DEBUG) {
|
253
|
-
manager = wrapManagerInDeprecationProxy(manager);
|
254
|
-
}
|
255
|
-
container.factoryManagerCache[normalizedName] = manager;
|
256
|
-
return manager;
|
257
|
-
}
|
258
|
-
function isSingletonClass(container, fullName, { instantiate, singleton }) {
|
259
|
-
return (singleton !== false &&
|
260
|
-
!instantiate &&
|
261
|
-
isSingleton(container, fullName) &&
|
262
|
-
!isInstantiatable(container, fullName));
|
263
|
-
}
|
264
|
-
function isSingletonInstance(container, fullName, { instantiate, singleton }) {
|
265
|
-
return (singleton !== false &&
|
266
|
-
instantiate !== false &&
|
267
|
-
isSingleton(container, fullName) &&
|
268
|
-
isInstantiatable(container, fullName));
|
269
|
-
}
|
270
|
-
function isFactoryClass(container, fullname, { instantiate, singleton }) {
|
271
|
-
return (instantiate === false &&
|
272
|
-
(singleton === false || !isSingleton(container, fullname)) &&
|
273
|
-
!isInstantiatable(container, fullname));
|
274
|
-
}
|
275
|
-
function isFactoryInstance(container, fullName, { instantiate, singleton }) {
|
276
|
-
return (instantiate !== false &&
|
277
|
-
(singleton !== false || isSingleton(container, fullName)) &&
|
278
|
-
isInstantiatable(container, fullName));
|
279
|
-
}
|
280
|
-
function instantiateFactory(container, normalizedName, fullName, options) {
|
281
|
-
let factoryManager = factoryFor(container, normalizedName, fullName);
|
282
|
-
if (factoryManager === undefined) {
|
283
|
-
return;
|
284
|
-
}
|
285
|
-
// SomeClass { singleton: true, instantiate: true } | { singleton: true } | { instantiate: true } | {}
|
286
|
-
// By default majority of objects fall into this case
|
287
|
-
if (isSingletonInstance(container, fullName, options)) {
|
288
|
-
return (container.cache[normalizedName] = factoryManager.create());
|
289
|
-
}
|
290
|
-
// SomeClass { singleton: false, instantiate: true }
|
291
|
-
if (isFactoryInstance(container, fullName, options)) {
|
292
|
-
return factoryManager.create();
|
293
|
-
}
|
294
|
-
// SomeClass { singleton: true, instantiate: false } | { instantiate: false } | { singleton: false, instantiation: false }
|
295
|
-
if (isSingletonClass(container, fullName, options) ||
|
296
|
-
isFactoryClass(container, fullName, options)) {
|
297
|
-
return factoryManager.class;
|
298
|
-
}
|
299
|
-
throw new Error('Could not create factory');
|
300
|
-
}
|
301
|
-
function processInjections(container, injections, result) {
|
302
|
-
if (DEBUG) {
|
303
|
-
container.registry.validateInjections(injections);
|
304
|
-
}
|
305
|
-
let hash = result.injections;
|
306
|
-
if (hash === undefined) {
|
307
|
-
hash = result.injections = {};
|
308
|
-
}
|
309
|
-
for (let i = 0; i < injections.length; i++) {
|
310
|
-
let { property, specifier, source } = injections[i];
|
311
|
-
if (source) {
|
312
|
-
hash[property] = lookup(container, specifier, { source });
|
313
|
-
}
|
314
|
-
else {
|
315
|
-
hash[property] = lookup(container, specifier);
|
316
|
-
}
|
317
|
-
if (!result.isDynamic) {
|
318
|
-
result.isDynamic = !isSingleton(container, specifier);
|
319
|
-
}
|
320
|
-
}
|
321
|
-
}
|
322
|
-
function buildInjections(container, typeInjections, injections) {
|
323
|
-
let result = {
|
324
|
-
injections: undefined,
|
325
|
-
isDynamic: false,
|
326
|
-
};
|
327
|
-
if (typeInjections !== undefined) {
|
328
|
-
processInjections(container, typeInjections, result);
|
329
|
-
}
|
330
|
-
if (injections !== undefined) {
|
331
|
-
processInjections(container, injections, result);
|
332
|
-
}
|
333
|
-
return result;
|
334
|
-
}
|
335
|
-
function injectionsFor(container, fullName) {
|
336
|
-
let registry = container.registry;
|
337
|
-
let [type] = fullName.split(':');
|
338
|
-
let typeInjections = registry.getTypeInjections(type);
|
339
|
-
let injections = registry.getInjections(fullName);
|
340
|
-
return buildInjections(container, typeInjections, injections);
|
341
|
-
}
|
342
|
-
function destroyDestroyables(container) {
|
343
|
-
let cache = container.cache;
|
344
|
-
let keys = Object.keys(cache);
|
345
|
-
for (let i = 0; i < keys.length; i++) {
|
346
|
-
let key = keys[i];
|
347
|
-
let value = cache[key];
|
348
|
-
if (value.destroy) {
|
349
|
-
value.destroy();
|
350
|
-
}
|
351
|
-
}
|
352
|
-
}
|
353
|
-
function resetCache(container) {
|
354
|
-
container.cache = dictionary(null);
|
355
|
-
container.factoryManagerCache = dictionary(null);
|
356
|
-
}
|
357
|
-
function resetMember(container, fullName) {
|
358
|
-
let member = container.cache[fullName];
|
359
|
-
delete container.factoryManagerCache[fullName];
|
360
|
-
if (member) {
|
361
|
-
delete container.cache[fullName];
|
362
|
-
if (member.destroy) {
|
363
|
-
member.destroy();
|
364
|
-
}
|
365
|
-
}
|
366
|
-
}
|
367
|
-
export const FACTORY_FOR = new WeakMap();
|
368
|
-
class FactoryManager {
|
369
|
-
constructor(container, factory, fullName, normalizedName) {
|
370
|
-
this.container = container;
|
371
|
-
this.owner = container.owner;
|
372
|
-
this.class = factory;
|
373
|
-
this.fullName = fullName;
|
374
|
-
this.normalizedName = normalizedName;
|
375
|
-
this.madeToString = undefined;
|
376
|
-
this.injections = undefined;
|
377
|
-
FACTORY_FOR.set(this, this);
|
378
|
-
}
|
379
|
-
toString() {
|
380
|
-
if (this.madeToString === undefined) {
|
381
|
-
this.madeToString = this.container.registry.makeToString(this.class, this.fullName);
|
382
|
-
}
|
383
|
-
return this.madeToString;
|
384
|
-
}
|
385
|
-
create(options) {
|
386
|
-
let injectionsCache = this.injections;
|
387
|
-
if (injectionsCache === undefined) {
|
388
|
-
let { injections, isDynamic } = injectionsFor(this.container, this.normalizedName);
|
389
|
-
injectionsCache = injections;
|
390
|
-
if (!isDynamic) {
|
391
|
-
this.injections = injections;
|
392
|
-
}
|
393
|
-
}
|
394
|
-
let props = injectionsCache;
|
395
|
-
if (options !== undefined) {
|
396
|
-
props = assign({}, injectionsCache, options);
|
397
|
-
}
|
398
|
-
if (DEBUG) {
|
399
|
-
let lazyInjections;
|
400
|
-
let validationCache = this.container.validationCache;
|
401
|
-
// Ensure that all lazy injections are valid at instantiation time
|
402
|
-
if (!validationCache[this.fullName] &&
|
403
|
-
this.class &&
|
404
|
-
typeof this.class._lazyInjections === 'function') {
|
405
|
-
lazyInjections = this.class._lazyInjections();
|
406
|
-
lazyInjections = this.container.registry.normalizeInjectionsHash(lazyInjections);
|
407
|
-
this.container.registry.validateInjections(lazyInjections);
|
408
|
-
}
|
409
|
-
validationCache[this.fullName] = true;
|
410
|
-
}
|
411
|
-
if (!this.class.create) {
|
412
|
-
throw new Error(`Failed to create an instance of '${this.normalizedName}'. Most likely an improperly defined class or` + ` an invalid module export.`);
|
413
|
-
}
|
414
|
-
// required to allow access to things like
|
415
|
-
// the customized toString, _debugContainerKey,
|
416
|
-
// owner, etc. without a double extend and without
|
417
|
-
// modifying the objects properties
|
418
|
-
if (typeof this.class._initFactory === 'function') {
|
419
|
-
this.class._initFactory(this);
|
420
|
-
}
|
421
|
-
else {
|
422
|
-
// in the non-EmberObject case we need to still setOwner
|
423
|
-
// this is required for supporting glimmer environment and
|
424
|
-
// template instantiation which rely heavily on
|
425
|
-
// `options[OWNER]` being passed into `create`
|
426
|
-
// TODO: clean this up, and remove in future versions
|
427
|
-
if (options === undefined || props === undefined) {
|
428
|
-
// avoid mutating `props` here since they are the cached injections
|
429
|
-
props = assign({}, props);
|
430
|
-
}
|
431
|
-
setOwner(props, this.owner);
|
432
|
-
}
|
433
|
-
let instance = this.class.create(props);
|
434
|
-
FACTORY_FOR.set(instance, this);
|
435
|
-
return instance;
|
436
|
-
}
|
437
|
-
}
|
@@ -1,646 +0,0 @@
|
|
1
|
-
import { assert, deprecate } from '@ember/debug';
|
2
|
-
import { REGISTRY_RESOLVER_AS_FUNCTION } from '@ember/deprecated-features';
|
3
|
-
import { assign } from '@ember/polyfills';
|
4
|
-
import { DEBUG } from '@glimmer/env';
|
5
|
-
import { ENV } from 'ember-environment';
|
6
|
-
import { dictionary, intern } from 'ember-utils';
|
7
|
-
import Container from './container';
|
8
|
-
const VALID_FULL_NAME_REGEXP = /^[^:]+:[^:]+$/;
|
9
|
-
const missingResolverFunctionsDeprecation = 'Passing a `resolver` function into a Registry is deprecated. Please pass in a Resolver object with a `resolve` method.';
|
10
|
-
/**
|
11
|
-
A registry used to store factory and option information keyed
|
12
|
-
by type.
|
13
|
-
|
14
|
-
A `Registry` stores the factory and option information needed by a
|
15
|
-
`Container` to instantiate and cache objects.
|
16
|
-
|
17
|
-
The API for `Registry` is still in flux and should not be considered stable.
|
18
|
-
|
19
|
-
@private
|
20
|
-
@class Registry
|
21
|
-
@since 1.11.0
|
22
|
-
*/
|
23
|
-
export default class Registry {
|
24
|
-
constructor(options = {}) {
|
25
|
-
this.fallback = options.fallback || null;
|
26
|
-
this.resolver = options.resolver || null;
|
27
|
-
if (ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT !== true) {
|
28
|
-
assert(missingResolverFunctionsDeprecation, typeof this.resolver !== 'function');
|
29
|
-
}
|
30
|
-
if (REGISTRY_RESOLVER_AS_FUNCTION &&
|
31
|
-
typeof this.resolver === 'function' &&
|
32
|
-
ENV._ENABLE_RESOLVER_FUNCTION_SUPPORT === true) {
|
33
|
-
deprecate(missingResolverFunctionsDeprecation, false, {
|
34
|
-
id: 'ember-application.registry-resolver-as-function',
|
35
|
-
until: '3.0.0',
|
36
|
-
url: 'https://emberjs.com/deprecations/v2.x#toc_registry-resolver-as-function',
|
37
|
-
});
|
38
|
-
this.resolver = { resolve: this.resolver };
|
39
|
-
}
|
40
|
-
this.registrations = dictionary(options.registrations || null);
|
41
|
-
this._typeInjections = dictionary(null);
|
42
|
-
this._injections = dictionary(null);
|
43
|
-
this._localLookupCache = Object.create(null);
|
44
|
-
this._normalizeCache = dictionary(null);
|
45
|
-
this._resolveCache = dictionary(null);
|
46
|
-
this._failSet = new Set();
|
47
|
-
this._options = dictionary(null);
|
48
|
-
this._typeOptions = dictionary(null);
|
49
|
-
}
|
50
|
-
/**
|
51
|
-
A backup registry for resolving registrations when no matches can be found.
|
52
|
-
|
53
|
-
@private
|
54
|
-
@property fallback
|
55
|
-
@type Registry
|
56
|
-
*/
|
57
|
-
/**
|
58
|
-
An object that has a `resolve` method that resolves a name.
|
59
|
-
|
60
|
-
@private
|
61
|
-
@property resolver
|
62
|
-
@type Resolver
|
63
|
-
*/
|
64
|
-
/**
|
65
|
-
@private
|
66
|
-
@property registrations
|
67
|
-
@type InheritingDict
|
68
|
-
*/
|
69
|
-
/**
|
70
|
-
@private
|
71
|
-
|
72
|
-
@property _typeInjections
|
73
|
-
@type InheritingDict
|
74
|
-
*/
|
75
|
-
/**
|
76
|
-
@private
|
77
|
-
|
78
|
-
@property _injections
|
79
|
-
@type InheritingDict
|
80
|
-
*/
|
81
|
-
/**
|
82
|
-
@private
|
83
|
-
|
84
|
-
@property _normalizeCache
|
85
|
-
@type InheritingDict
|
86
|
-
*/
|
87
|
-
/**
|
88
|
-
@private
|
89
|
-
|
90
|
-
@property _resolveCache
|
91
|
-
@type InheritingDict
|
92
|
-
*/
|
93
|
-
/**
|
94
|
-
@private
|
95
|
-
|
96
|
-
@property _options
|
97
|
-
@type InheritingDict
|
98
|
-
*/
|
99
|
-
/**
|
100
|
-
@private
|
101
|
-
|
102
|
-
@property _typeOptions
|
103
|
-
@type InheritingDict
|
104
|
-
*/
|
105
|
-
/**
|
106
|
-
Creates a container based on this registry.
|
107
|
-
|
108
|
-
@private
|
109
|
-
@method container
|
110
|
-
@param {Object} options
|
111
|
-
@return {Container} created container
|
112
|
-
*/
|
113
|
-
container(options) {
|
114
|
-
return new Container(this, options);
|
115
|
-
}
|
116
|
-
/**
|
117
|
-
Registers a factory for later injection.
|
118
|
-
|
119
|
-
Example:
|
120
|
-
|
121
|
-
```javascript
|
122
|
-
let registry = new Registry();
|
123
|
-
|
124
|
-
registry.register('model:user', Person, {singleton: false });
|
125
|
-
registry.register('fruit:favorite', Orange);
|
126
|
-
registry.register('communication:main', Email, {singleton: false});
|
127
|
-
```
|
128
|
-
|
129
|
-
@private
|
130
|
-
@method register
|
131
|
-
@param {String} fullName
|
132
|
-
@param {Function} factory
|
133
|
-
@param {Object} options
|
134
|
-
*/
|
135
|
-
register(fullName, factory, options = {}) {
|
136
|
-
assert('fullName must be a proper full name', this.isValidFullName(fullName));
|
137
|
-
assert(`Attempting to register an unknown factory: '${fullName}'`, factory !== undefined);
|
138
|
-
let normalizedName = this.normalize(fullName);
|
139
|
-
assert(`Cannot re-register: '${fullName}', as it has already been resolved.`, !this._resolveCache[normalizedName]);
|
140
|
-
this._failSet.delete(normalizedName);
|
141
|
-
this.registrations[normalizedName] = factory;
|
142
|
-
this._options[normalizedName] = options;
|
143
|
-
}
|
144
|
-
/**
|
145
|
-
Unregister a fullName
|
146
|
-
|
147
|
-
```javascript
|
148
|
-
let registry = new Registry();
|
149
|
-
registry.register('model:user', User);
|
150
|
-
|
151
|
-
registry.resolve('model:user').create() instanceof User //=> true
|
152
|
-
|
153
|
-
registry.unregister('model:user')
|
154
|
-
registry.resolve('model:user') === undefined //=> true
|
155
|
-
```
|
156
|
-
|
157
|
-
@private
|
158
|
-
@method unregister
|
159
|
-
@param {String} fullName
|
160
|
-
*/
|
161
|
-
unregister(fullName) {
|
162
|
-
assert('fullName must be a proper full name', this.isValidFullName(fullName));
|
163
|
-
let normalizedName = this.normalize(fullName);
|
164
|
-
this._localLookupCache = Object.create(null);
|
165
|
-
delete this.registrations[normalizedName];
|
166
|
-
delete this._resolveCache[normalizedName];
|
167
|
-
delete this._options[normalizedName];
|
168
|
-
this._failSet.delete(normalizedName);
|
169
|
-
}
|
170
|
-
/**
|
171
|
-
Given a fullName return the corresponding factory.
|
172
|
-
|
173
|
-
By default `resolve` will retrieve the factory from
|
174
|
-
the registry.
|
175
|
-
|
176
|
-
```javascript
|
177
|
-
let registry = new Registry();
|
178
|
-
registry.register('api:twitter', Twitter);
|
179
|
-
|
180
|
-
registry.resolve('api:twitter') // => Twitter
|
181
|
-
```
|
182
|
-
|
183
|
-
Optionally the registry can be provided with a custom resolver.
|
184
|
-
If provided, `resolve` will first provide the custom resolver
|
185
|
-
the opportunity to resolve the fullName, otherwise it will fallback
|
186
|
-
to the registry.
|
187
|
-
|
188
|
-
```javascript
|
189
|
-
let registry = new Registry();
|
190
|
-
registry.resolver = function(fullName) {
|
191
|
-
// lookup via the module system of choice
|
192
|
-
};
|
193
|
-
|
194
|
-
// the twitter factory is added to the module system
|
195
|
-
registry.resolve('api:twitter') // => Twitter
|
196
|
-
```
|
197
|
-
|
198
|
-
@private
|
199
|
-
@method resolve
|
200
|
-
@param {String} fullName
|
201
|
-
@param {Object} [options]
|
202
|
-
@param {String} [options.source] the fullname of the request source (used for local lookups)
|
203
|
-
@return {Function} fullName's factory
|
204
|
-
*/
|
205
|
-
resolve(fullName, options) {
|
206
|
-
let factory = resolve(this, this.normalize(fullName), options);
|
207
|
-
if (factory === undefined && this.fallback !== null) {
|
208
|
-
factory = this.fallback.resolve(...arguments);
|
209
|
-
}
|
210
|
-
return factory;
|
211
|
-
}
|
212
|
-
/**
|
213
|
-
A hook that can be used to describe how the resolver will
|
214
|
-
attempt to find the factory.
|
215
|
-
|
216
|
-
For example, the default Ember `.describe` returns the full
|
217
|
-
class name (including namespace) where Ember's resolver expects
|
218
|
-
to find the `fullName`.
|
219
|
-
|
220
|
-
@private
|
221
|
-
@method describe
|
222
|
-
@param {String} fullName
|
223
|
-
@return {string} described fullName
|
224
|
-
*/
|
225
|
-
describe(fullName) {
|
226
|
-
if (this.resolver !== null && this.resolver.lookupDescription) {
|
227
|
-
return this.resolver.lookupDescription(fullName);
|
228
|
-
}
|
229
|
-
else if (this.fallback !== null) {
|
230
|
-
return this.fallback.describe(fullName);
|
231
|
-
}
|
232
|
-
else {
|
233
|
-
return fullName;
|
234
|
-
}
|
235
|
-
}
|
236
|
-
/**
|
237
|
-
A hook to enable custom fullName normalization behavior
|
238
|
-
|
239
|
-
@private
|
240
|
-
@method normalizeFullName
|
241
|
-
@param {String} fullName
|
242
|
-
@return {string} normalized fullName
|
243
|
-
*/
|
244
|
-
normalizeFullName(fullName) {
|
245
|
-
if (this.resolver !== null && this.resolver.normalize) {
|
246
|
-
return this.resolver.normalize(fullName);
|
247
|
-
}
|
248
|
-
else if (this.fallback !== null) {
|
249
|
-
return this.fallback.normalizeFullName(fullName);
|
250
|
-
}
|
251
|
-
else {
|
252
|
-
return fullName;
|
253
|
-
}
|
254
|
-
}
|
255
|
-
/**
|
256
|
-
Normalize a fullName based on the application's conventions
|
257
|
-
|
258
|
-
@private
|
259
|
-
@method normalize
|
260
|
-
@param {String} fullName
|
261
|
-
@return {string} normalized fullName
|
262
|
-
*/
|
263
|
-
normalize(fullName) {
|
264
|
-
return (this._normalizeCache[fullName] ||
|
265
|
-
(this._normalizeCache[fullName] = this.normalizeFullName(fullName)));
|
266
|
-
}
|
267
|
-
/**
|
268
|
-
@method makeToString
|
269
|
-
|
270
|
-
@private
|
271
|
-
@param {any} factory
|
272
|
-
@param {string} fullName
|
273
|
-
@return {function} toString function
|
274
|
-
*/
|
275
|
-
makeToString(factory, fullName) {
|
276
|
-
if (this.resolver !== null && this.resolver.makeToString) {
|
277
|
-
return this.resolver.makeToString(factory, fullName);
|
278
|
-
}
|
279
|
-
else if (this.fallback !== null) {
|
280
|
-
return this.fallback.makeToString(factory, fullName);
|
281
|
-
}
|
282
|
-
else {
|
283
|
-
return factory.toString();
|
284
|
-
}
|
285
|
-
}
|
286
|
-
/**
|
287
|
-
Given a fullName check if the container is aware of its factory
|
288
|
-
or singleton instance.
|
289
|
-
|
290
|
-
@private
|
291
|
-
@method has
|
292
|
-
@param {String} fullName
|
293
|
-
@param {Object} [options]
|
294
|
-
@param {String} [options.source] the fullname of the request source (used for local lookups)
|
295
|
-
@return {Boolean}
|
296
|
-
*/
|
297
|
-
has(fullName, options) {
|
298
|
-
if (!this.isValidFullName(fullName)) {
|
299
|
-
return false;
|
300
|
-
}
|
301
|
-
let source = options && options.source && this.normalize(options.source);
|
302
|
-
let namespace = (options && options.namespace) || undefined;
|
303
|
-
return has(this, this.normalize(fullName), source, namespace);
|
304
|
-
}
|
305
|
-
/**
|
306
|
-
Allow registering options for all factories of a type.
|
307
|
-
|
308
|
-
```javascript
|
309
|
-
let registry = new Registry();
|
310
|
-
let container = registry.container();
|
311
|
-
|
312
|
-
// if all of type `connection` must not be singletons
|
313
|
-
registry.optionsForType('connection', { singleton: false });
|
314
|
-
|
315
|
-
registry.register('connection:twitter', TwitterConnection);
|
316
|
-
registry.register('connection:facebook', FacebookConnection);
|
317
|
-
|
318
|
-
let twitter = container.lookup('connection:twitter');
|
319
|
-
let twitter2 = container.lookup('connection:twitter');
|
320
|
-
|
321
|
-
twitter === twitter2; // => false
|
322
|
-
|
323
|
-
let facebook = container.lookup('connection:facebook');
|
324
|
-
let facebook2 = container.lookup('connection:facebook');
|
325
|
-
|
326
|
-
facebook === facebook2; // => false
|
327
|
-
```
|
328
|
-
|
329
|
-
@private
|
330
|
-
@method optionsForType
|
331
|
-
@param {String} type
|
332
|
-
@param {Object} options
|
333
|
-
*/
|
334
|
-
optionsForType(type, options) {
|
335
|
-
this._typeOptions[type] = options;
|
336
|
-
}
|
337
|
-
getOptionsForType(type) {
|
338
|
-
let optionsForType = this._typeOptions[type];
|
339
|
-
if (optionsForType === undefined && this.fallback !== null) {
|
340
|
-
optionsForType = this.fallback.getOptionsForType(type);
|
341
|
-
}
|
342
|
-
return optionsForType;
|
343
|
-
}
|
344
|
-
/**
|
345
|
-
@private
|
346
|
-
@method options
|
347
|
-
@param {String} fullName
|
348
|
-
@param {Object} options
|
349
|
-
*/
|
350
|
-
options(fullName, options) {
|
351
|
-
let normalizedName = this.normalize(fullName);
|
352
|
-
this._options[normalizedName] = options;
|
353
|
-
}
|
354
|
-
getOptions(fullName) {
|
355
|
-
let normalizedName = this.normalize(fullName);
|
356
|
-
let options = this._options[normalizedName];
|
357
|
-
if (options === undefined && this.fallback !== null) {
|
358
|
-
options = this.fallback.getOptions(fullName);
|
359
|
-
}
|
360
|
-
return options;
|
361
|
-
}
|
362
|
-
getOption(fullName, optionName) {
|
363
|
-
let options = this._options[fullName];
|
364
|
-
if (options !== undefined && options[optionName] !== undefined) {
|
365
|
-
return options[optionName];
|
366
|
-
}
|
367
|
-
let type = fullName.split(':')[0];
|
368
|
-
options = this._typeOptions[type];
|
369
|
-
if (options && options[optionName] !== undefined) {
|
370
|
-
return options[optionName];
|
371
|
-
}
|
372
|
-
else if (this.fallback !== null) {
|
373
|
-
return this.fallback.getOption(fullName, optionName);
|
374
|
-
}
|
375
|
-
return undefined;
|
376
|
-
}
|
377
|
-
/**
|
378
|
-
Used only via `injection`.
|
379
|
-
|
380
|
-
Provides a specialized form of injection, specifically enabling
|
381
|
-
all objects of one type to be injected with a reference to another
|
382
|
-
object.
|
383
|
-
|
384
|
-
For example, provided each object of type `controller` needed a `router`.
|
385
|
-
one would do the following:
|
386
|
-
|
387
|
-
```javascript
|
388
|
-
let registry = new Registry();
|
389
|
-
let container = registry.container();
|
390
|
-
|
391
|
-
registry.register('router:main', Router);
|
392
|
-
registry.register('controller:user', UserController);
|
393
|
-
registry.register('controller:post', PostController);
|
394
|
-
|
395
|
-
registry.typeInjection('controller', 'router', 'router:main');
|
396
|
-
|
397
|
-
let user = container.lookup('controller:user');
|
398
|
-
let post = container.lookup('controller:post');
|
399
|
-
|
400
|
-
user.router instanceof Router; //=> true
|
401
|
-
post.router instanceof Router; //=> true
|
402
|
-
|
403
|
-
// both controllers share the same router
|
404
|
-
user.router === post.router; //=> true
|
405
|
-
```
|
406
|
-
|
407
|
-
@private
|
408
|
-
@method typeInjection
|
409
|
-
@param {String} type
|
410
|
-
@param {String} property
|
411
|
-
@param {String} fullName
|
412
|
-
*/
|
413
|
-
typeInjection(type, property, fullName) {
|
414
|
-
assert('fullName must be a proper full name', this.isValidFullName(fullName));
|
415
|
-
let fullNameType = fullName.split(':')[0];
|
416
|
-
assert(`Cannot inject a '${fullName}' on other ${type}(s).`, fullNameType !== type);
|
417
|
-
let injections = this._typeInjections[type] || (this._typeInjections[type] = []);
|
418
|
-
injections.push({ property, specifier: fullName });
|
419
|
-
}
|
420
|
-
/**
|
421
|
-
Defines injection rules.
|
422
|
-
|
423
|
-
These rules are used to inject dependencies onto objects when they
|
424
|
-
are instantiated.
|
425
|
-
|
426
|
-
Two forms of injections are possible:
|
427
|
-
|
428
|
-
* Injecting one fullName on another fullName
|
429
|
-
* Injecting one fullName on a type
|
430
|
-
|
431
|
-
Example:
|
432
|
-
|
433
|
-
```javascript
|
434
|
-
let registry = new Registry();
|
435
|
-
let container = registry.container();
|
436
|
-
|
437
|
-
registry.register('source:main', Source);
|
438
|
-
registry.register('model:user', User);
|
439
|
-
registry.register('model:post', Post);
|
440
|
-
|
441
|
-
// injecting one fullName on another fullName
|
442
|
-
// eg. each user model gets a post model
|
443
|
-
registry.injection('model:user', 'post', 'model:post');
|
444
|
-
|
445
|
-
// injecting one fullName on another type
|
446
|
-
registry.injection('model', 'source', 'source:main');
|
447
|
-
|
448
|
-
let user = container.lookup('model:user');
|
449
|
-
let post = container.lookup('model:post');
|
450
|
-
|
451
|
-
user.source instanceof Source; //=> true
|
452
|
-
post.source instanceof Source; //=> true
|
453
|
-
|
454
|
-
user.post instanceof Post; //=> true
|
455
|
-
|
456
|
-
// and both models share the same source
|
457
|
-
user.source === post.source; //=> true
|
458
|
-
```
|
459
|
-
|
460
|
-
@private
|
461
|
-
@method injection
|
462
|
-
@param {String} factoryName
|
463
|
-
@param {String} property
|
464
|
-
@param {String} injectionName
|
465
|
-
*/
|
466
|
-
injection(fullName, property, injectionName) {
|
467
|
-
assert(`Invalid injectionName, expected: 'type:name' got: ${injectionName}`, this.isValidFullName(injectionName));
|
468
|
-
let normalizedInjectionName = this.normalize(injectionName);
|
469
|
-
if (fullName.indexOf(':') === -1) {
|
470
|
-
return this.typeInjection(fullName, property, normalizedInjectionName);
|
471
|
-
}
|
472
|
-
assert('fullName must be a proper full name', this.isValidFullName(fullName));
|
473
|
-
let normalizedName = this.normalize(fullName);
|
474
|
-
let injections = this._injections[normalizedName] || (this._injections[normalizedName] = []);
|
475
|
-
injections.push({ property, specifier: normalizedInjectionName });
|
476
|
-
}
|
477
|
-
/**
|
478
|
-
@private
|
479
|
-
@method knownForType
|
480
|
-
@param {String} type the type to iterate over
|
481
|
-
*/
|
482
|
-
knownForType(type) {
|
483
|
-
let localKnown = dictionary(null);
|
484
|
-
let registeredNames = Object.keys(this.registrations);
|
485
|
-
for (let index = 0; index < registeredNames.length; index++) {
|
486
|
-
let fullName = registeredNames[index];
|
487
|
-
let itemType = fullName.split(':')[0];
|
488
|
-
if (itemType === type) {
|
489
|
-
localKnown[fullName] = true;
|
490
|
-
}
|
491
|
-
}
|
492
|
-
let fallbackKnown, resolverKnown;
|
493
|
-
if (this.fallback !== null) {
|
494
|
-
fallbackKnown = this.fallback.knownForType(type);
|
495
|
-
}
|
496
|
-
if (this.resolver !== null && this.resolver.knownForType) {
|
497
|
-
resolverKnown = this.resolver.knownForType(type);
|
498
|
-
}
|
499
|
-
return assign({}, fallbackKnown, localKnown, resolverKnown);
|
500
|
-
}
|
501
|
-
isValidFullName(fullName) {
|
502
|
-
return VALID_FULL_NAME_REGEXP.test(fullName);
|
503
|
-
}
|
504
|
-
getInjections(fullName) {
|
505
|
-
let injections = this._injections[fullName];
|
506
|
-
if (this.fallback !== null) {
|
507
|
-
let fallbackInjections = this.fallback.getInjections(fullName);
|
508
|
-
if (fallbackInjections !== undefined) {
|
509
|
-
injections =
|
510
|
-
injections === undefined ? fallbackInjections : injections.concat(fallbackInjections);
|
511
|
-
}
|
512
|
-
}
|
513
|
-
return injections;
|
514
|
-
}
|
515
|
-
getTypeInjections(type) {
|
516
|
-
let injections = this._typeInjections[type];
|
517
|
-
if (this.fallback !== null) {
|
518
|
-
let fallbackInjections = this.fallback.getTypeInjections(type);
|
519
|
-
if (fallbackInjections !== undefined) {
|
520
|
-
injections =
|
521
|
-
injections === undefined ? fallbackInjections : injections.concat(fallbackInjections);
|
522
|
-
}
|
523
|
-
}
|
524
|
-
return injections;
|
525
|
-
}
|
526
|
-
/**
|
527
|
-
Given a fullName and a source fullName returns the fully resolved
|
528
|
-
fullName. Used to allow for local lookup.
|
529
|
-
|
530
|
-
```javascript
|
531
|
-
let registry = new Registry();
|
532
|
-
|
533
|
-
// the twitter factory is added to the module system
|
534
|
-
registry.expandLocalLookup('component:post-title', { source: 'template:post' }) // => component:post/post-title
|
535
|
-
```
|
536
|
-
|
537
|
-
@private
|
538
|
-
@method expandLocalLookup
|
539
|
-
@param {String} fullName
|
540
|
-
@param {Object} [options]
|
541
|
-
@param {String} [options.source] the fullname of the request source (used for local lookups)
|
542
|
-
@return {String} fullName
|
543
|
-
*/
|
544
|
-
expandLocalLookup(fullName, options) {
|
545
|
-
if (this.resolver !== null && this.resolver.expandLocalLookup) {
|
546
|
-
assert('fullName must be a proper full name', this.isValidFullName(fullName));
|
547
|
-
assert('options.source must be a proper full name', !options.source || this.isValidFullName(options.source));
|
548
|
-
let normalizedFullName = this.normalize(fullName);
|
549
|
-
let normalizedSource = this.normalize(options.source);
|
550
|
-
return expandLocalLookup(this, normalizedFullName, normalizedSource, options.namespace);
|
551
|
-
}
|
552
|
-
else if (this.fallback !== null) {
|
553
|
-
return this.fallback.expandLocalLookup(fullName, options);
|
554
|
-
}
|
555
|
-
else {
|
556
|
-
return null;
|
557
|
-
}
|
558
|
-
}
|
559
|
-
}
|
560
|
-
if (DEBUG) {
|
561
|
-
const proto = Registry.prototype;
|
562
|
-
proto.normalizeInjectionsHash = function (hash) {
|
563
|
-
let injections = [];
|
564
|
-
for (let key in hash) {
|
565
|
-
if (hash.hasOwnProperty(key)) {
|
566
|
-
let { specifier, source, namespace } = hash[key];
|
567
|
-
assert(`Expected a proper full name, given '${specifier}'`, this.isValidFullName(specifier));
|
568
|
-
injections.push({
|
569
|
-
property: key,
|
570
|
-
specifier,
|
571
|
-
source,
|
572
|
-
namespace,
|
573
|
-
});
|
574
|
-
}
|
575
|
-
}
|
576
|
-
return injections;
|
577
|
-
};
|
578
|
-
proto.validateInjections = function (injections) {
|
579
|
-
if (!injections) {
|
580
|
-
return;
|
581
|
-
}
|
582
|
-
for (let i = 0; i < injections.length; i++) {
|
583
|
-
let { specifier, source, namespace } = injections[i];
|
584
|
-
assert(`Attempting to inject an unknown injection: '${specifier}'`, this.has(specifier, { source, namespace }));
|
585
|
-
}
|
586
|
-
};
|
587
|
-
}
|
588
|
-
function expandLocalLookup(registry, normalizedName, normalizedSource, namespace) {
|
589
|
-
let cache = registry._localLookupCache;
|
590
|
-
let normalizedNameCache = cache[normalizedName];
|
591
|
-
if (!normalizedNameCache) {
|
592
|
-
normalizedNameCache = cache[normalizedName] = Object.create(null);
|
593
|
-
}
|
594
|
-
let cacheKey = namespace || normalizedSource;
|
595
|
-
let cached = normalizedNameCache[cacheKey];
|
596
|
-
if (cached !== undefined) {
|
597
|
-
return cached;
|
598
|
-
}
|
599
|
-
let expanded = registry.resolver.expandLocalLookup(normalizedName, normalizedSource, namespace);
|
600
|
-
return (normalizedNameCache[cacheKey] = expanded);
|
601
|
-
}
|
602
|
-
function resolve(registry, _normalizedName, options) {
|
603
|
-
let normalizedName = _normalizedName;
|
604
|
-
// when `source` is provided expand normalizedName
|
605
|
-
// and source into the full normalizedName
|
606
|
-
if (options !== undefined && (options.source || options.namespace)) {
|
607
|
-
normalizedName = registry.expandLocalLookup(_normalizedName, options);
|
608
|
-
if (!normalizedName) {
|
609
|
-
return;
|
610
|
-
}
|
611
|
-
}
|
612
|
-
let cached = registry._resolveCache[normalizedName];
|
613
|
-
if (cached !== undefined) {
|
614
|
-
return cached;
|
615
|
-
}
|
616
|
-
if (registry._failSet.has(normalizedName)) {
|
617
|
-
return;
|
618
|
-
}
|
619
|
-
let resolved;
|
620
|
-
if (registry.resolver) {
|
621
|
-
resolved = registry.resolver.resolve(normalizedName);
|
622
|
-
}
|
623
|
-
if (resolved === undefined) {
|
624
|
-
resolved = registry.registrations[normalizedName];
|
625
|
-
}
|
626
|
-
if (resolved === undefined) {
|
627
|
-
registry._failSet.add(normalizedName);
|
628
|
-
}
|
629
|
-
else {
|
630
|
-
registry._resolveCache[normalizedName] = resolved;
|
631
|
-
}
|
632
|
-
return resolved;
|
633
|
-
}
|
634
|
-
function has(registry, fullName, source, namespace) {
|
635
|
-
return registry.resolve(fullName, { source, namespace }) !== undefined;
|
636
|
-
}
|
637
|
-
const privateNames = dictionary(null);
|
638
|
-
const privateSuffix = `${Math.random()}${Date.now()}`.replace('.', '');
|
639
|
-
export function privatize([fullName]) {
|
640
|
-
let name = privateNames[fullName];
|
641
|
-
if (name) {
|
642
|
-
return name;
|
643
|
-
}
|
644
|
-
let [type, rawName] = fullName.split(':');
|
645
|
-
return (privateNames[fullName] = intern(`${type}:${rawName}-${privateSuffix}`));
|
646
|
-
}
|