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.
Files changed (741) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ember/version.rb +1 -1
  3. metadata +2 -740
  4. data/.gitignore +0 -9
  5. data/.travis.yml +0 -5
  6. data/Gemfile +0 -6
  7. data/LICENSE.txt +0 -21
  8. data/README +0 -18
  9. data/README.md +0 -39
  10. data/Rakefile +0 -27
  11. data/bin/console +0 -14
  12. data/bin/setup +0 -8
  13. data/discourse-ember-source-3.5.1.0.gem +0 -0
  14. data/dist/ember-all.debug.map +0 -1
  15. data/dist/ember-template-compiler.map +0 -1
  16. data/dist/ember-testing.map +0 -1
  17. data/dist/ember-tests.map +0 -1
  18. data/dist/ember-tests.prod.map +0 -1
  19. data/dist/ember.debug.map +0 -1
  20. data/dist/ember.min.map +0 -1
  21. data/dist/ember.prod.map +0 -1
  22. data/dist/es/@ember/application/globals-resolver.js +0 -425
  23. data/dist/es/@ember/application/index.js +0 -3
  24. data/dist/es/@ember/application/instance.js +0 -513
  25. data/dist/es/@ember/application/lib/application.js +0 -1139
  26. data/dist/es/@ember/application/lib/lazy_load.js +0 -69
  27. data/dist/es/@ember/application/lib/validate-type.js +0 -24
  28. data/dist/es/@ember/application/tests/application_instance_test.js +0 -230
  29. data/dist/es/@ember/application/tests/application_test.js +0 -470
  30. data/dist/es/@ember/application/tests/bootstrap-test.js +0 -28
  31. data/dist/es/@ember/application/tests/dependency_injection/custom_resolver_test.js +0 -32
  32. data/dist/es/@ember/application/tests/dependency_injection/default_resolver_test.js +0 -363
  33. data/dist/es/@ember/application/tests/dependency_injection/normalization_test.js +0 -70
  34. data/dist/es/@ember/application/tests/dependency_injection/to_string_test.js +0 -71
  35. data/dist/es/@ember/application/tests/dependency_injection_test.js +0 -93
  36. data/dist/es/@ember/application/tests/initializers_test.js +0 -391
  37. data/dist/es/@ember/application/tests/instance_initializers_test.js +0 -395
  38. data/dist/es/@ember/application/tests/lazy_load_test.js +0 -79
  39. data/dist/es/@ember/application/tests/logging_test.js +0 -179
  40. data/dist/es/@ember/application/tests/readiness_test.js +0 -138
  41. data/dist/es/@ember/application/tests/reset_test.js +0 -185
  42. data/dist/es/@ember/application/tests/visit_test.js +0 -783
  43. data/dist/es/@ember/canary-features/index.js +0 -76
  44. data/dist/es/@ember/controller/index.js +0 -50
  45. data/dist/es/@ember/controller/lib/controller_mixin.js +0 -42
  46. data/dist/es/@ember/controller/tests/controller_test.js +0 -209
  47. data/dist/es/@ember/debug/index.js +0 -264
  48. data/dist/es/@ember/debug/lib/deprecate.js +0 -198
  49. data/dist/es/@ember/debug/lib/handlers.js +0 -22
  50. data/dist/es/@ember/debug/lib/testing.js +0 -7
  51. data/dist/es/@ember/debug/lib/warn.js +0 -107
  52. data/dist/es/@ember/debug/tests/handlers-test.js +0 -144
  53. data/dist/es/@ember/debug/tests/main_test.js +0 -444
  54. data/dist/es/@ember/deprecated-features/index.js +0 -21
  55. data/dist/es/@ember/engine/index.js +0 -532
  56. data/dist/es/@ember/engine/instance.js +0 -228
  57. data/dist/es/@ember/engine/lib/engine-parent.js +0 -32
  58. data/dist/es/@ember/engine/tests/engine_initializers_test.js +0 -366
  59. data/dist/es/@ember/engine/tests/engine_instance_initializers_test.js +0 -409
  60. data/dist/es/@ember/engine/tests/engine_instance_test.js +0 -115
  61. data/dist/es/@ember/engine/tests/engine_parent_test.js +0 -20
  62. data/dist/es/@ember/engine/tests/engine_test.js +0 -121
  63. data/dist/es/@ember/error/index.js +0 -36
  64. data/dist/es/@ember/error/tests/index_test.js +0 -19
  65. data/dist/es/@ember/instrumentation/index.js +0 -240
  66. data/dist/es/@ember/instrumentation/tests/index-test.js +0 -214
  67. data/dist/es/@ember/map/index.js +0 -218
  68. data/dist/es/@ember/map/lib/ordered-set.js +0 -186
  69. data/dist/es/@ember/map/lib/utils.js +0 -29
  70. data/dist/es/@ember/map/tests/map_test.js +0 -578
  71. data/dist/es/@ember/map/with-default.js +0 -87
  72. data/dist/es/@ember/object/computed.js +0 -35
  73. data/dist/es/@ember/object/lib/computed/computed_macros.js +0 -742
  74. data/dist/es/@ember/object/lib/computed/reduce_computed_macros.js +0 -894
  75. data/dist/es/@ember/object/tests/computed/computed_macros_test.js +0 -533
  76. data/dist/es/@ember/object/tests/computed/reduce_computed_macros_test.js +0 -2243
  77. data/dist/es/@ember/polyfills/index.js +0 -3
  78. data/dist/es/@ember/polyfills/lib/assign.js +0 -43
  79. data/dist/es/@ember/polyfills/lib/merge.js +0 -35
  80. data/dist/es/@ember/polyfills/tests/assign_test.js +0 -64
  81. data/dist/es/@ember/runloop/index.js +0 -749
  82. data/dist/es/@ember/runloop/tests/debounce_test.js +0 -87
  83. data/dist/es/@ember/runloop/tests/later_test.js +0 -264
  84. data/dist/es/@ember/runloop/tests/next_test.js +0 -56
  85. data/dist/es/@ember/runloop/tests/once_test.js +0 -62
  86. data/dist/es/@ember/runloop/tests/onerror_test.js +0 -59
  87. data/dist/es/@ember/runloop/tests/run_bind_test.js +0 -59
  88. data/dist/es/@ember/runloop/tests/run_test.js +0 -28
  89. data/dist/es/@ember/runloop/tests/schedule_test.js +0 -86
  90. data/dist/es/@ember/runloop/tests/sync_test.js +0 -32
  91. data/dist/es/@ember/runloop/tests/unwind_test.js +0 -54
  92. data/dist/es/@ember/service/index.js +0 -57
  93. data/dist/es/@ember/string/index.js +0 -362
  94. data/dist/es/@ember/string/lib/string_registry.js +0 -13
  95. data/dist/es/@ember/string/tests/camelize_test.js +0 -53
  96. data/dist/es/@ember/string/tests/capitalize_test.js +0 -58
  97. data/dist/es/@ember/string/tests/classify_test.js +0 -79
  98. data/dist/es/@ember/string/tests/dasherize_test.js +0 -57
  99. data/dist/es/@ember/string/tests/decamelize_test.js +0 -51
  100. data/dist/es/@ember/string/tests/loc_test.js +0 -76
  101. data/dist/es/@ember/string/tests/underscore_test.js +0 -51
  102. data/dist/es/@ember/string/tests/w_test.js +0 -39
  103. data/dist/es/@glimmer/compiler.js +0 -1226
  104. data/dist/es/@glimmer/encoder.js +0 -39
  105. data/dist/es/@glimmer/low-level.js +0 -82
  106. data/dist/es/@glimmer/node.js +0 -112
  107. data/dist/es/@glimmer/opcode-compiler.js +0 -1999
  108. data/dist/es/@glimmer/program.js +0 -405
  109. data/dist/es/@glimmer/reference.js +0 -478
  110. data/dist/es/@glimmer/runtime.js +0 -4086
  111. data/dist/es/@glimmer/syntax.js +0 -1424
  112. data/dist/es/@glimmer/util.js +0 -189
  113. data/dist/es/@glimmer/vm.js +0 -27
  114. data/dist/es/@glimmer/wire-format.js +0 -56
  115. data/dist/es/backburner.js +0 -936
  116. data/dist/es/container/index.js +0 -8
  117. data/dist/es/container/lib/container.js +0 -437
  118. data/dist/es/container/lib/registry.js +0 -646
  119. data/dist/es/container/tests/container_test.js +0 -872
  120. data/dist/es/container/tests/owner_test.js +0 -20
  121. data/dist/es/container/tests/registry_test.js +0 -943
  122. data/dist/es/dag-map.js +0 -209
  123. data/dist/es/ember-browser-environment/index.js +0 -8
  124. data/dist/es/ember-browser-environment/lib/has-dom.js +0 -19
  125. data/dist/es/ember-console/index.js +0 -177
  126. data/dist/es/ember-environment/index.js +0 -3
  127. data/dist/es/ember-environment/lib/context.js +0 -20
  128. data/dist/es/ember-environment/lib/env.js +0 -185
  129. data/dist/es/ember-environment/lib/global.js +0 -14
  130. data/dist/es/ember-error-handling/index.js +0 -22
  131. data/dist/es/ember-extension-support/index.js +0 -2
  132. data/dist/es/ember-extension-support/lib/container_debug_adapter.js +0 -99
  133. data/dist/es/ember-extension-support/lib/data_adapter.js +0 -493
  134. data/dist/es/ember-extension-support/tests/container_debug_adapter_test.js +0 -73
  135. data/dist/es/ember-extension-support/tests/data_adapter_test.js +0 -301
  136. data/dist/es/ember-glimmer/index.js +0 -286
  137. data/dist/es/ember-glimmer/lib/compile-time-lookup.js +0 -37
  138. data/dist/es/ember-glimmer/lib/component-managers/abstract.js +0 -49
  139. data/dist/es/ember-glimmer/lib/component-managers/curly.js +0 -395
  140. data/dist/es/ember-glimmer/lib/component-managers/custom.js +0 -145
  141. data/dist/es/ember-glimmer/lib/component-managers/definition-state.js +0 -1
  142. data/dist/es/ember-glimmer/lib/component-managers/mount.js +0 -103
  143. data/dist/es/ember-glimmer/lib/component-managers/outlet.js +0 -114
  144. data/dist/es/ember-glimmer/lib/component-managers/render.js +0 -112
  145. data/dist/es/ember-glimmer/lib/component-managers/root.js +0 -74
  146. data/dist/es/ember-glimmer/lib/component-managers/template-only.js +0 -46
  147. data/dist/es/ember-glimmer/lib/component.js +0 -633
  148. data/dist/es/ember-glimmer/lib/components/checkbox.js +0 -57
  149. data/dist/es/ember-glimmer/lib/components/link-to.js +0 -777
  150. data/dist/es/ember-glimmer/lib/components/text_area.js +0 -236
  151. data/dist/es/ember-glimmer/lib/components/text_field.js +0 -145
  152. data/dist/es/ember-glimmer/lib/dom.js +0 -3
  153. data/dist/es/ember-glimmer/lib/environment.js +0 -102
  154. data/dist/es/ember-glimmer/lib/helper.js +0 -128
  155. data/dist/es/ember-glimmer/lib/helpers/-class.js +0 -23
  156. data/dist/es/ember-glimmer/lib/helpers/-html-safe.js +0 -9
  157. data/dist/es/ember-glimmer/lib/helpers/-input-type.js +0 -11
  158. data/dist/es/ember-glimmer/lib/helpers/-normalize-class.js +0 -22
  159. data/dist/es/ember-glimmer/lib/helpers/action.js +0 -360
  160. data/dist/es/ember-glimmer/lib/helpers/component.js +0 -135
  161. data/dist/es/ember-glimmer/lib/helpers/concat.js +0 -38
  162. data/dist/es/ember-glimmer/lib/helpers/each-in.js +0 -126
  163. data/dist/es/ember-glimmer/lib/helpers/get.js +0 -100
  164. data/dist/es/ember-glimmer/lib/helpers/hash.js +0 -44
  165. data/dist/es/ember-glimmer/lib/helpers/if-unless.js +0 -142
  166. data/dist/es/ember-glimmer/lib/helpers/loc.js +0 -40
  167. data/dist/es/ember-glimmer/lib/helpers/log.js +0 -25
  168. data/dist/es/ember-glimmer/lib/helpers/mut.js +0 -107
  169. data/dist/es/ember-glimmer/lib/helpers/query-param.js +0 -31
  170. data/dist/es/ember-glimmer/lib/helpers/readonly.js +0 -104
  171. data/dist/es/ember-glimmer/lib/helpers/unbound.js +0 -36
  172. data/dist/es/ember-glimmer/lib/modifiers/action.js +0 -185
  173. data/dist/es/ember-glimmer/lib/protocol-for-url.js +0 -48
  174. data/dist/es/ember-glimmer/lib/renderer.js +0 -371
  175. data/dist/es/ember-glimmer/lib/resolver.js +0 -290
  176. data/dist/es/ember-glimmer/lib/setup-registry.js +0 -77
  177. data/dist/es/ember-glimmer/lib/syntax.js +0 -73
  178. data/dist/es/ember-glimmer/lib/syntax/-text-area.js +0 -8
  179. data/dist/es/ember-glimmer/lib/syntax/input.js +0 -173
  180. data/dist/es/ember-glimmer/lib/syntax/let.js +0 -50
  181. data/dist/es/ember-glimmer/lib/syntax/mount.js +0 -101
  182. data/dist/es/ember-glimmer/lib/syntax/outlet.js +0 -120
  183. data/dist/es/ember-glimmer/lib/syntax/render.js +0 -140
  184. data/dist/es/ember-glimmer/lib/syntax/utils.js +0 -6
  185. data/dist/es/ember-glimmer/lib/template-compiler.js +0 -7
  186. data/dist/es/ember-glimmer/lib/template.js +0 -16
  187. data/dist/es/ember-glimmer/lib/template_registry.js +0 -18
  188. data/dist/es/ember-glimmer/lib/templates/component.js +0 -2
  189. data/dist/es/ember-glimmer/lib/templates/empty.js +0 -2
  190. data/dist/es/ember-glimmer/lib/templates/link-to.js +0 -2
  191. data/dist/es/ember-glimmer/lib/templates/outlet.js +0 -2
  192. data/dist/es/ember-glimmer/lib/templates/root.js +0 -2
  193. data/dist/es/ember-glimmer/lib/utils/bindings.js +0 -180
  194. data/dist/es/ember-glimmer/lib/utils/curly-component-state-bucket.js +0 -36
  195. data/dist/es/ember-glimmer/lib/utils/custom-component-manager.js +0 -20
  196. data/dist/es/ember-glimmer/lib/utils/debug-stack.js +0 -57
  197. data/dist/es/ember-glimmer/lib/utils/iterable.js +0 -358
  198. data/dist/es/ember-glimmer/lib/utils/outlet.js +0 -89
  199. data/dist/es/ember-glimmer/lib/utils/process-args.js +0 -40
  200. data/dist/es/ember-glimmer/lib/utils/references.js +0 -325
  201. data/dist/es/ember-glimmer/lib/utils/serialization-first-node-helpers.js +0 -1
  202. data/dist/es/ember-glimmer/lib/utils/string.js +0 -98
  203. data/dist/es/ember-glimmer/lib/utils/to-bool.js +0 -9
  204. data/dist/es/ember-glimmer/lib/views/outlet.js +0 -71
  205. data/dist/es/ember-glimmer/tests/integration/application/actions-test.js +0 -107
  206. data/dist/es/ember-glimmer/tests/integration/application/engine-test.js +0 -912
  207. data/dist/es/ember-glimmer/tests/integration/application/rendering-test.js +0 -530
  208. data/dist/es/ember-glimmer/tests/integration/components/angle-bracket-invocation-test.js +0 -852
  209. data/dist/es/ember-glimmer/tests/integration/components/append-test.js +0 -742
  210. data/dist/es/ember-glimmer/tests/integration/components/attribute-bindings-test.js +0 -999
  211. data/dist/es/ember-glimmer/tests/integration/components/attrs-lookup-test.js +0 -268
  212. data/dist/es/ember-glimmer/tests/integration/components/class-bindings-test.js +0 -849
  213. data/dist/es/ember-glimmer/tests/integration/components/contextual-components-test.js +0 -1493
  214. data/dist/es/ember-glimmer/tests/integration/components/curly-components-test.js +0 -3705
  215. data/dist/es/ember-glimmer/tests/integration/components/destroy-test.js +0 -33
  216. data/dist/es/ember-glimmer/tests/integration/components/dynamic-components-test.js +0 -896
  217. data/dist/es/ember-glimmer/tests/integration/components/error-handling-test.js +0 -164
  218. data/dist/es/ember-glimmer/tests/integration/components/fragment-components-test.js +0 -285
  219. data/dist/es/ember-glimmer/tests/integration/components/instrumentation-compile-test.js +0 -108
  220. data/dist/es/ember-glimmer/tests/integration/components/instrumentation-test.js +0 -157
  221. data/dist/es/ember-glimmer/tests/integration/components/life-cycle-test.js +0 -1653
  222. data/dist/es/ember-glimmer/tests/integration/components/link-to-test.js +0 -218
  223. data/dist/es/ember-glimmer/tests/integration/components/local-lookup-test.js +0 -414
  224. data/dist/es/ember-glimmer/tests/integration/components/namespaced-lookup-test.js +0 -185
  225. data/dist/es/ember-glimmer/tests/integration/components/render-to-element-test.js +0 -0
  226. data/dist/es/ember-glimmer/tests/integration/components/target-action-test.js +0 -779
  227. data/dist/es/ember-glimmer/tests/integration/components/template-only-components-test.js +0 -225
  228. data/dist/es/ember-glimmer/tests/integration/components/to-string-test.js +0 -27
  229. data/dist/es/ember-glimmer/tests/integration/components/utils-test.js +0 -401
  230. data/dist/es/ember-glimmer/tests/integration/components/web-component-fallback-test.js +0 -35
  231. data/dist/es/ember-glimmer/tests/integration/components/will-destroy-element-hook-test.js +0 -40
  232. data/dist/es/ember-glimmer/tests/integration/content-test.js +0 -1759
  233. data/dist/es/ember-glimmer/tests/integration/custom-component-manager-test.js +0 -508
  234. data/dist/es/ember-glimmer/tests/integration/event-dispatcher-test.js +0 -607
  235. data/dist/es/ember-glimmer/tests/integration/helpers/-class-test.js +0 -76
  236. data/dist/es/ember-glimmer/tests/integration/helpers/closure-action-test.js +0 -1240
  237. data/dist/es/ember-glimmer/tests/integration/helpers/concat-test.js +0 -106
  238. data/dist/es/ember-glimmer/tests/integration/helpers/custom-helper-test.js +0 -672
  239. data/dist/es/ember-glimmer/tests/integration/helpers/element-action-test.js +0 -1595
  240. data/dist/es/ember-glimmer/tests/integration/helpers/get-test.js +0 -618
  241. data/dist/es/ember-glimmer/tests/integration/helpers/hash-test.js +0 -188
  242. data/dist/es/ember-glimmer/tests/integration/helpers/if-unless-test.js +0 -149
  243. data/dist/es/ember-glimmer/tests/integration/helpers/input-test.js +0 -827
  244. data/dist/es/ember-glimmer/tests/integration/helpers/loc-test.js +0 -103
  245. data/dist/es/ember-glimmer/tests/integration/helpers/log-test.js +0 -61
  246. data/dist/es/ember-glimmer/tests/integration/helpers/mut-test.js +0 -580
  247. data/dist/es/ember-glimmer/tests/integration/helpers/partial-test.js +0 -386
  248. data/dist/es/ember-glimmer/tests/integration/helpers/readonly-test.js +0 -293
  249. data/dist/es/ember-glimmer/tests/integration/helpers/render-test.js +0 -522
  250. data/dist/es/ember-glimmer/tests/integration/helpers/text-area-test.js +0 -166
  251. data/dist/es/ember-glimmer/tests/integration/helpers/unbound-test.js +0 -650
  252. data/dist/es/ember-glimmer/tests/integration/helpers/yield-test.js +0 -275
  253. data/dist/es/ember-glimmer/tests/integration/input-test.js +0 -242
  254. data/dist/es/ember-glimmer/tests/integration/mount-test.js +0 -424
  255. data/dist/es/ember-glimmer/tests/integration/outlet-test.js +0 -318
  256. data/dist/es/ember-glimmer/tests/integration/refinements-test.js +0 -74
  257. data/dist/es/ember-glimmer/tests/integration/render-settled-test.js +0 -72
  258. data/dist/es/ember-glimmer/tests/integration/svg-test.js +0 -158
  259. data/dist/es/ember-glimmer/tests/integration/syntax/each-in-test.js +0 -697
  260. data/dist/es/ember-glimmer/tests/integration/syntax/each-test.js +0 -1251
  261. data/dist/es/ember-glimmer/tests/integration/syntax/experimental-syntax-test.js +0 -42
  262. data/dist/es/ember-glimmer/tests/integration/syntax/if-unless-test.js +0 -108
  263. data/dist/es/ember-glimmer/tests/integration/syntax/in-element-test.js +0 -119
  264. data/dist/es/ember-glimmer/tests/integration/syntax/let-test.js +0 -390
  265. data/dist/es/ember-glimmer/tests/integration/syntax/with-dynamic-var-test.js +0 -36
  266. data/dist/es/ember-glimmer/tests/integration/syntax/with-test.js +0 -422
  267. data/dist/es/ember-glimmer/tests/unit/outlet-test.js +0 -48
  268. data/dist/es/ember-glimmer/tests/unit/runtime-resolver-cache-test.js +0 -263
  269. data/dist/es/ember-glimmer/tests/unit/template-factory-test.js +0 -67
  270. data/dist/es/ember-glimmer/tests/unit/utils/debug-stack-test.js +0 -38
  271. data/dist/es/ember-glimmer/tests/utils/abstract-test-case.js +0 -1
  272. data/dist/es/ember-glimmer/tests/utils/helpers.js +0 -15
  273. data/dist/es/ember-glimmer/tests/utils/shared-conditional-tests.js +0 -965
  274. data/dist/es/ember-glimmer/tests/utils/string-test.js +0 -47
  275. data/dist/es/ember-glimmer/tests/utils/test-case.js +0 -6
  276. data/dist/es/ember-glimmer/tests/utils/test-helpers.js +0 -1
  277. data/dist/es/ember-meta/index.js +0 -1
  278. data/dist/es/ember-meta/lib/meta.js +0 -623
  279. data/dist/es/ember-meta/tests/meta_test.js +0 -169
  280. data/dist/es/ember-metal/index.js +0 -33
  281. data/dist/es/ember-metal/lib/alias.js +0 -80
  282. data/dist/es/ember-metal/lib/array.js +0 -55
  283. data/dist/es/ember-metal/lib/array_events.js +0 -65
  284. data/dist/es/ember-metal/lib/chains.js +0 -315
  285. data/dist/es/ember-metal/lib/change_event.js +0 -4
  286. data/dist/es/ember-metal/lib/computed.js +0 -526
  287. data/dist/es/ember-metal/lib/computed_cache.js +0 -58
  288. data/dist/es/ember-metal/lib/dependent_keys.js +0 -34
  289. data/dist/es/ember-metal/lib/deprecate_property.js +0 -34
  290. data/dist/es/ember-metal/lib/descriptor.js +0 -28
  291. data/dist/es/ember-metal/lib/each_proxy.js +0 -106
  292. data/dist/es/ember-metal/lib/each_proxy_events.js +0 -13
  293. data/dist/es/ember-metal/lib/events.js +0 -174
  294. data/dist/es/ember-metal/lib/expand_properties.js +0 -64
  295. data/dist/es/ember-metal/lib/get_properties.js +0 -45
  296. data/dist/es/ember-metal/lib/injected_property.js +0 -53
  297. data/dist/es/ember-metal/lib/is_blank.js +0 -34
  298. data/dist/es/ember-metal/lib/is_empty.js +0 -63
  299. data/dist/es/ember-metal/lib/is_none.js +0 -27
  300. data/dist/es/ember-metal/lib/is_present.js +0 -38
  301. data/dist/es/ember-metal/lib/libraries.js +0 -80
  302. data/dist/es/ember-metal/lib/mixin.js +0 -646
  303. data/dist/es/ember-metal/lib/namespace_search.js +0 -166
  304. data/dist/es/ember-metal/lib/observer.js +0 -34
  305. data/dist/es/ember-metal/lib/observer_set.js +0 -48
  306. data/dist/es/ember-metal/lib/path_cache.js +0 -5
  307. data/dist/es/ember-metal/lib/properties.js +0 -192
  308. data/dist/es/ember-metal/lib/property_events.js +0 -198
  309. data/dist/es/ember-metal/lib/property_get.js +0 -160
  310. data/dist/es/ember-metal/lib/property_set.js +0 -157
  311. data/dist/es/ember-metal/lib/set_properties.js +0 -43
  312. data/dist/es/ember-metal/lib/tags.js +0 -81
  313. data/dist/es/ember-metal/lib/tracked.js +0 -201
  314. data/dist/es/ember-metal/lib/transaction.js +0 -137
  315. data/dist/es/ember-metal/lib/watch_key.js +0 -113
  316. data/dist/es/ember-metal/lib/watch_path.js +0 -24
  317. data/dist/es/ember-metal/lib/watching.js +0 -54
  318. data/dist/es/ember-metal/tests/accessors/get_path_test.js +0 -82
  319. data/dist/es/ember-metal/tests/accessors/get_properties_test.js +0 -36
  320. data/dist/es/ember-metal/tests/accessors/get_test.js +0 -335
  321. data/dist/es/ember-metal/tests/accessors/mandatory_setters_test.js +0 -470
  322. data/dist/es/ember-metal/tests/accessors/set_path_test.js +0 -97
  323. data/dist/es/ember-metal/tests/accessors/set_test.js +0 -128
  324. data/dist/es/ember-metal/tests/alias_test.js +0 -167
  325. data/dist/es/ember-metal/tests/chains_test.js +0 -210
  326. data/dist/es/ember-metal/tests/computed_test.js +0 -1040
  327. data/dist/es/ember-metal/tests/descriptor_test.js +0 -368
  328. data/dist/es/ember-metal/tests/events_test.js +0 -210
  329. data/dist/es/ember-metal/tests/expand_properties_test.js +0 -119
  330. data/dist/es/ember-metal/tests/injected_property_test.js +0 -76
  331. data/dist/es/ember-metal/tests/is_blank_test.js +0 -29
  332. data/dist/es/ember-metal/tests/is_empty_test.js +0 -55
  333. data/dist/es/ember-metal/tests/is_none_test.js +0 -23
  334. data/dist/es/ember-metal/tests/is_present_test.js +0 -30
  335. data/dist/es/ember-metal/tests/libraries_test.js +0 -99
  336. data/dist/es/ember-metal/tests/main_test.js +0 -31
  337. data/dist/es/ember-metal/tests/mixin/alias_method_test.js +0 -91
  338. data/dist/es/ember-metal/tests/mixin/apply_test.js +0 -40
  339. data/dist/es/ember-metal/tests/mixin/computed_test.js +0 -166
  340. data/dist/es/ember-metal/tests/mixin/concatenated_properties_test.js +0 -117
  341. data/dist/es/ember-metal/tests/mixin/detect_test.js +0 -40
  342. data/dist/es/ember-metal/tests/mixin/introspection_test.js +0 -75
  343. data/dist/es/ember-metal/tests/mixin/merged_properties_test.js +0 -200
  344. data/dist/es/ember-metal/tests/mixin/method_test.js +0 -252
  345. data/dist/es/ember-metal/tests/mixin/observer_test.js +0 -202
  346. data/dist/es/ember-metal/tests/mixin/reopen_test.js +0 -53
  347. data/dist/es/ember-metal/tests/mixin/without_test.js +0 -22
  348. data/dist/es/ember-metal/tests/namespace_search_test.js +0 -16
  349. data/dist/es/ember-metal/tests/observer_test.js +0 -961
  350. data/dist/es/ember-metal/tests/performance_test.js +0 -81
  351. data/dist/es/ember-metal/tests/properties_test.js +0 -120
  352. data/dist/es/ember-metal/tests/property_did_change_hook.js +0 -73
  353. data/dist/es/ember-metal/tests/set_properties_test.js +0 -49
  354. data/dist/es/ember-metal/tests/tracked/computed_test.js +0 -67
  355. data/dist/es/ember-metal/tests/tracked/get_test.js +0 -86
  356. data/dist/es/ember-metal/tests/tracked/set_test.js +0 -44
  357. data/dist/es/ember-metal/tests/tracked/support.js +0 -37
  358. data/dist/es/ember-metal/tests/tracked/validation_test.js +0 -233
  359. data/dist/es/ember-metal/tests/watching/is_watching_test.js +0 -97
  360. data/dist/es/ember-metal/tests/watching/unwatch_test.js +0 -109
  361. data/dist/es/ember-metal/tests/watching/watch_test.js +0 -255
  362. data/dist/es/ember-owner/index.js +0 -66
  363. data/dist/es/ember-routing/index.js +0 -21
  364. data/dist/es/ember-routing/lib/ext/controller.js +0 -222
  365. data/dist/es/ember-routing/lib/location/api.js +0 -118
  366. data/dist/es/ember-routing/lib/location/auto_location.js +0 -323
  367. data/dist/es/ember-routing/lib/location/hash_location.js +0 -171
  368. data/dist/es/ember-routing/lib/location/history_location.js +0 -298
  369. data/dist/es/ember-routing/lib/location/none_location.js +0 -122
  370. data/dist/es/ember-routing/lib/location/util.js +0 -114
  371. data/dist/es/ember-routing/lib/services/router.js +0 -243
  372. data/dist/es/ember-routing/lib/services/routing.js +0 -101
  373. data/dist/es/ember-routing/lib/system/cache.js +0 -40
  374. data/dist/es/ember-routing/lib/system/controller_for.js +0 -14
  375. data/dist/es/ember-routing/lib/system/dsl.js +0 -208
  376. data/dist/es/ember-routing/lib/system/generate_controller.js +0 -54
  377. data/dist/es/ember-routing/lib/system/query_params.js +0 -6
  378. data/dist/es/ember-routing/lib/system/route.js +0 -2476
  379. data/dist/es/ember-routing/lib/system/router.js +0 -1607
  380. data/dist/es/ember-routing/lib/system/router_state.js +0 -26
  381. data/dist/es/ember-routing/lib/system/transition.js +0 -153
  382. data/dist/es/ember-routing/lib/utils.js +0 -230
  383. data/dist/es/ember-routing/tests/ext/controller_test.js +0 -85
  384. data/dist/es/ember-routing/tests/location/auto_location_test.js +0 -379
  385. data/dist/es/ember-routing/tests/location/hash_location_test.js +0 -207
  386. data/dist/es/ember-routing/tests/location/history_location_test.js +0 -322
  387. data/dist/es/ember-routing/tests/location/none_location_test.js +0 -88
  388. data/dist/es/ember-routing/tests/location/util_test.js +0 -159
  389. data/dist/es/ember-routing/tests/system/cache_test.js +0 -54
  390. data/dist/es/ember-routing/tests/system/controller_for_test.js +0 -75
  391. data/dist/es/ember-routing/tests/system/dsl_test.js +0 -413
  392. data/dist/es/ember-routing/tests/system/route_test.js +0 -587
  393. data/dist/es/ember-routing/tests/system/router_test.js +0 -287
  394. data/dist/es/ember-routing/tests/utils_test.js +0 -37
  395. data/dist/es/ember-runtime/.gitignore +0 -1
  396. data/dist/es/ember-runtime/README +0 -12
  397. data/dist/es/ember-runtime/index.js +0 -35
  398. data/dist/es/ember-runtime/lib/compare.js +0 -149
  399. data/dist/es/ember-runtime/lib/copy.js +0 -106
  400. data/dist/es/ember-runtime/lib/ext/function.js +0 -154
  401. data/dist/es/ember-runtime/lib/ext/rsvp.js +0 -59
  402. data/dist/es/ember-runtime/lib/is-equal.js +0 -60
  403. data/dist/es/ember-runtime/lib/mixins/-proxy.js +0 -109
  404. data/dist/es/ember-runtime/lib/mixins/action_handler.js +0 -222
  405. data/dist/es/ember-runtime/lib/mixins/array.js +0 -1661
  406. data/dist/es/ember-runtime/lib/mixins/comparable.js +0 -38
  407. data/dist/es/ember-runtime/lib/mixins/container_proxy.js +0 -154
  408. data/dist/es/ember-runtime/lib/mixins/copyable.js +0 -34
  409. data/dist/es/ember-runtime/lib/mixins/enumerable.js +0 -16
  410. data/dist/es/ember-runtime/lib/mixins/evented.js +0 -149
  411. data/dist/es/ember-runtime/lib/mixins/mutable_enumerable.js +0 -18
  412. data/dist/es/ember-runtime/lib/mixins/observable.js +0 -482
  413. data/dist/es/ember-runtime/lib/mixins/promise_proxy.js +0 -224
  414. data/dist/es/ember-runtime/lib/mixins/registry_proxy.js +0 -265
  415. data/dist/es/ember-runtime/lib/mixins/target_action_support.js +0 -172
  416. data/dist/es/ember-runtime/lib/system/array_proxy.js +0 -298
  417. data/dist/es/ember-runtime/lib/system/core_object.js +0 -1037
  418. data/dist/es/ember-runtime/lib/system/namespace.js +0 -69
  419. data/dist/es/ember-runtime/lib/system/object.js +0 -73
  420. data/dist/es/ember-runtime/lib/system/object_proxy.js +0 -81
  421. data/dist/es/ember-runtime/lib/type-of.js +0 -107
  422. data/dist/es/ember-runtime/tests/array/any-test.js +0 -55
  423. data/dist/es/ember-runtime/tests/array/compact-test.js +0 -12
  424. data/dist/es/ember-runtime/tests/array/every-test.js +0 -82
  425. data/dist/es/ember-runtime/tests/array/filter-test.js +0 -123
  426. data/dist/es/ember-runtime/tests/array/find-test.js +0 -86
  427. data/dist/es/ember-runtime/tests/array/firstObject-test.js +0 -27
  428. data/dist/es/ember-runtime/tests/array/forEach-test.js +0 -68
  429. data/dist/es/ember-runtime/tests/array/includes-test.js +0 -46
  430. data/dist/es/ember-runtime/tests/array/indexOf-test.js +0 -27
  431. data/dist/es/ember-runtime/tests/array/invoke-test.js +0 -60
  432. data/dist/es/ember-runtime/tests/array/isAny-test.js +0 -53
  433. data/dist/es/ember-runtime/tests/array/lastIndexOf-test.js +0 -78
  434. data/dist/es/ember-runtime/tests/array/lastObject-test.js +0 -31
  435. data/dist/es/ember-runtime/tests/array/map-test.js +0 -68
  436. data/dist/es/ember-runtime/tests/array/mapBy-test.js +0 -16
  437. data/dist/es/ember-runtime/tests/array/objectAt-test.js +0 -34
  438. data/dist/es/ember-runtime/tests/array/reduce-test.js +0 -24
  439. data/dist/es/ember-runtime/tests/array/reject-test.js +0 -134
  440. data/dist/es/ember-runtime/tests/array/sortBy-test.js +0 -23
  441. data/dist/es/ember-runtime/tests/array/toArray-test.js +0 -11
  442. data/dist/es/ember-runtime/tests/array/uniq-test.js +0 -27
  443. data/dist/es/ember-runtime/tests/array/uniqBy-test.js +0 -33
  444. data/dist/es/ember-runtime/tests/array/without-test.js +0 -39
  445. data/dist/es/ember-runtime/tests/copyable-array/copy-test.js +0 -12
  446. data/dist/es/ember-runtime/tests/core/compare_test.js +0 -89
  447. data/dist/es/ember-runtime/tests/core/copy_test.js +0 -47
  448. data/dist/es/ember-runtime/tests/core/isEqual_test.js +0 -65
  449. data/dist/es/ember-runtime/tests/core/is_array_test.js +0 -59
  450. data/dist/es/ember-runtime/tests/core/is_empty_test.js +0 -15
  451. data/dist/es/ember-runtime/tests/core/type_of_test.js +0 -54
  452. data/dist/es/ember-runtime/tests/ext/function_test.js +0 -121
  453. data/dist/es/ember-runtime/tests/ext/rsvp_test.js +0 -269
  454. data/dist/es/ember-runtime/tests/helpers/array.js +0 -336
  455. data/dist/es/ember-runtime/tests/inject_test.js +0 -51
  456. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/chained_test.js +0 -63
  457. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/observable_test.js +0 -892
  458. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test.js +0 -142
  459. data/dist/es/ember-runtime/tests/legacy_1x/system/object/base_test.js +0 -98
  460. data/dist/es/ember-runtime/tests/legacy_1x/system/object/concatenated_test.js +0 -131
  461. data/dist/es/ember-runtime/tests/mixins/array_test.js +0 -400
  462. data/dist/es/ember-runtime/tests/mixins/comparable_test.js +0 -37
  463. data/dist/es/ember-runtime/tests/mixins/container_proxy_test.js +0 -48
  464. data/dist/es/ember-runtime/tests/mixins/enumerable_test.js +0 -17
  465. data/dist/es/ember-runtime/tests/mixins/evented_test.js +0 -23
  466. data/dist/es/ember-runtime/tests/mixins/mutable_enumerable_test.js +0 -17
  467. data/dist/es/ember-runtime/tests/mixins/observable_test.js +0 -137
  468. data/dist/es/ember-runtime/tests/mixins/promise_proxy_test.js +0 -593
  469. data/dist/es/ember-runtime/tests/mixins/target_action_support_test.js +0 -237
  470. data/dist/es/ember-runtime/tests/mutable-array/addObject-test.js +0 -76
  471. data/dist/es/ember-runtime/tests/mutable-array/clear-test.js +0 -64
  472. data/dist/es/ember-runtime/tests/mutable-array/insertAt-test.js +0 -216
  473. data/dist/es/ember-runtime/tests/mutable-array/popObject-test.js +0 -91
  474. data/dist/es/ember-runtime/tests/mutable-array/pushObject-test.js +0 -98
  475. data/dist/es/ember-runtime/tests/mutable-array/pushObjects-test.js +0 -12
  476. data/dist/es/ember-runtime/tests/mutable-array/removeAt-test.js +0 -187
  477. data/dist/es/ember-runtime/tests/mutable-array/removeObject-test.js +0 -77
  478. data/dist/es/ember-runtime/tests/mutable-array/removeObjects-test.js +0 -202
  479. data/dist/es/ember-runtime/tests/mutable-array/replace-test.js +0 -221
  480. data/dist/es/ember-runtime/tests/mutable-array/reverseObjects-test.js +0 -35
  481. data/dist/es/ember-runtime/tests/mutable-array/setObjects-test.js +0 -63
  482. data/dist/es/ember-runtime/tests/mutable-array/shiftObject-test.js +0 -105
  483. data/dist/es/ember-runtime/tests/mutable-array/unshiftObject-test.js +0 -99
  484. data/dist/es/ember-runtime/tests/mutable-array/unshiftObjects-test.js +0 -102
  485. data/dist/es/ember-runtime/tests/system/array_proxy/arranged_content_test.js +0 -275
  486. data/dist/es/ember-runtime/tests/system/array_proxy/array_observer_test.js +0 -51
  487. data/dist/es/ember-runtime/tests/system/array_proxy/content_change_test.js +0 -85
  488. data/dist/es/ember-runtime/tests/system/array_proxy/length_test.js +0 -201
  489. data/dist/es/ember-runtime/tests/system/array_proxy/watching_and_listening_test.js +0 -157
  490. data/dist/es/ember-runtime/tests/system/core_object_test.js +0 -114
  491. data/dist/es/ember-runtime/tests/system/namespace/base_test.js +0 -175
  492. data/dist/es/ember-runtime/tests/system/native_array/a_test.js +0 -16
  493. data/dist/es/ember-runtime/tests/system/native_array/copyable_suite_test.js +0 -19
  494. data/dist/es/ember-runtime/tests/system/native_array/replace_test.js +0 -17
  495. data/dist/es/ember-runtime/tests/system/object/computed_test.js +0 -352
  496. data/dist/es/ember-runtime/tests/system/object/create_test.js +0 -135
  497. data/dist/es/ember-runtime/tests/system/object/destroy_test.js +0 -146
  498. data/dist/es/ember-runtime/tests/system/object/detectInstance_test.js +0 -38
  499. data/dist/es/ember-runtime/tests/system/object/detect_test.js +0 -33
  500. data/dist/es/ember-runtime/tests/system/object/es-compatibility-test.js +0 -469
  501. data/dist/es/ember-runtime/tests/system/object/events_test.js +0 -156
  502. data/dist/es/ember-runtime/tests/system/object/extend_test.js +0 -153
  503. data/dist/es/ember-runtime/tests/system/object/observer_test.js +0 -216
  504. data/dist/es/ember-runtime/tests/system/object/reopenClass_test.js +0 -36
  505. data/dist/es/ember-runtime/tests/system/object/reopen_test.js +0 -48
  506. data/dist/es/ember-runtime/tests/system/object/strict-mode-test.js +0 -31
  507. data/dist/es/ember-runtime/tests/system/object/toString_test.js +0 -125
  508. data/dist/es/ember-runtime/tests/system/object_proxy_test.js +0 -314
  509. data/dist/es/ember-template-compiler/index.js +0 -26
  510. data/dist/es/ember-template-compiler/lib/compat.js +0 -16
  511. data/dist/es/ember-template-compiler/lib/plugins/assert-if-helper-without-arguments.js +0 -38
  512. data/dist/es/ember-template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -20
  513. data/dist/es/ember-template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -26
  514. data/dist/es/ember-template-compiler/lib/plugins/assert-splattribute-expression.js +0 -27
  515. data/dist/es/ember-template-compiler/lib/plugins/deprecate-render-model.js +0 -38
  516. data/dist/es/ember-template-compiler/lib/plugins/deprecate-render.js +0 -41
  517. data/dist/es/ember-template-compiler/lib/plugins/deprecate-send-action.js +0 -42
  518. data/dist/es/ember-template-compiler/lib/plugins/index.js +0 -50
  519. data/dist/es/ember-template-compiler/lib/plugins/transform-action-syntax.js +0 -52
  520. data/dist/es/ember-template-compiler/lib/plugins/transform-angle-bracket-components.js +0 -10
  521. data/dist/es/ember-template-compiler/lib/plugins/transform-attrs-into-args.js +0 -62
  522. data/dist/es/ember-template-compiler/lib/plugins/transform-dot-component-invocation.js +0 -88
  523. data/dist/es/ember-template-compiler/lib/plugins/transform-each-in-into-each.js +0 -48
  524. data/dist/es/ember-template-compiler/lib/plugins/transform-has-block-syntax.js +0 -46
  525. data/dist/es/ember-template-compiler/lib/plugins/transform-in-element.js +0 -83
  526. data/dist/es/ember-template-compiler/lib/plugins/transform-inline-link-to.js +0 -31
  527. data/dist/es/ember-template-compiler/lib/plugins/transform-input-type-syntax.js +0 -52
  528. data/dist/es/ember-template-compiler/lib/plugins/transform-old-binding-syntax.js +0 -48
  529. data/dist/es/ember-template-compiler/lib/plugins/transform-old-class-binding-syntax.js +0 -102
  530. data/dist/es/ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.js +0 -34
  531. data/dist/es/ember-template-compiler/lib/plugins/transform-top-level-components.js +0 -41
  532. data/dist/es/ember-template-compiler/lib/system/bootstrap.js +0 -44
  533. data/dist/es/ember-template-compiler/lib/system/calculate-location-display.js +0 -20
  534. data/dist/es/ember-template-compiler/lib/system/compile-options.js +0 -71
  535. data/dist/es/ember-template-compiler/lib/system/compile.js +0 -28
  536. data/dist/es/ember-template-compiler/lib/system/dasherize-component-name.js +0 -13
  537. data/dist/es/ember-template-compiler/lib/system/initializer.js +0 -22
  538. data/dist/es/ember-template-compiler/lib/system/precompile.js +0 -18
  539. data/dist/es/ember-template-compiler/tests/plugins/assert-if-helper-without-arguments-test.js +0 -51
  540. data/dist/es/ember-template-compiler/tests/plugins/assert-input-helper-without-block-test.js +0 -17
  541. data/dist/es/ember-template-compiler/tests/plugins/assert-reserved-named-arguments-test.js +0 -416
  542. data/dist/es/ember-template-compiler/tests/plugins/assert-splattribute-expression-test.js +0 -57
  543. data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-model-test.js +0 -19
  544. data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-test.js +0 -19
  545. data/dist/es/ember-template-compiler/tests/plugins/deprecate-send-action-test.js +0 -29
  546. data/dist/es/ember-template-compiler/tests/plugins/transform-dot-component-invocation-test.js +0 -27
  547. data/dist/es/ember-template-compiler/tests/plugins/transform-inline-link-to-test.js +0 -15
  548. data/dist/es/ember-template-compiler/tests/plugins/transform-input-type-syntax-test.js +0 -25
  549. data/dist/es/ember-template-compiler/tests/system/bootstrap-test.js +0 -155
  550. data/dist/es/ember-template-compiler/tests/system/compile_options_test.js +0 -115
  551. data/dist/es/ember-template-compiler/tests/system/dasherize-component-name-test.js +0 -19
  552. data/dist/es/ember-testing/index.js +0 -10
  553. data/dist/es/ember-testing/lib/adapters/adapter.js +0 -58
  554. data/dist/es/ember-testing/lib/adapters/qunit.js +0 -47
  555. data/dist/es/ember-testing/lib/events.js +0 -136
  556. data/dist/es/ember-testing/lib/ext/application.js +0 -191
  557. data/dist/es/ember-testing/lib/ext/rsvp.js +0 -19
  558. data/dist/es/ember-testing/lib/helpers.js +0 -30
  559. data/dist/es/ember-testing/lib/helpers/-is-form-control.js +0 -16
  560. data/dist/es/ember-testing/lib/helpers/and_then.js +0 -3
  561. data/dist/es/ember-testing/lib/helpers/click.js +0 -36
  562. data/dist/es/ember-testing/lib/helpers/current_path.js +0 -27
  563. data/dist/es/ember-testing/lib/helpers/current_route_name.js +0 -25
  564. data/dist/es/ember-testing/lib/helpers/current_url.js +0 -27
  565. data/dist/es/ember-testing/lib/helpers/fill_in.js +0 -46
  566. data/dist/es/ember-testing/lib/helpers/find.js +0 -41
  567. data/dist/es/ember-testing/lib/helpers/find_with_assert.js +0 -34
  568. data/dist/es/ember-testing/lib/helpers/key_event.js +0 -36
  569. data/dist/es/ember-testing/lib/helpers/pause_test.js +0 -65
  570. data/dist/es/ember-testing/lib/helpers/trigger_event.js +0 -62
  571. data/dist/es/ember-testing/lib/helpers/visit.js +0 -42
  572. data/dist/es/ember-testing/lib/helpers/wait.js +0 -72
  573. data/dist/es/ember-testing/lib/initializers.js +0 -17
  574. data/dist/es/ember-testing/lib/setup_for_testing.js +0 -44
  575. data/dist/es/ember-testing/lib/support.js +0 -62
  576. data/dist/es/ember-testing/lib/test.js +0 -70
  577. data/dist/es/ember-testing/lib/test/adapter.js +0 -33
  578. data/dist/es/ember-testing/lib/test/helpers.js +0 -125
  579. data/dist/es/ember-testing/lib/test/on_inject_helpers.js +0 -38
  580. data/dist/es/ember-testing/lib/test/pending_requests.js +0 -24
  581. data/dist/es/ember-testing/lib/test/promise.js +0 -79
  582. data/dist/es/ember-testing/lib/test/run.js +0 -9
  583. data/dist/es/ember-testing/lib/test/waiters.js +0 -117
  584. data/dist/es/ember-testing/tests/acceptance_test.js +0 -478
  585. data/dist/es/ember-testing/tests/adapters/adapter_test.js +0 -31
  586. data/dist/es/ember-testing/tests/adapters/qunit_test.js +0 -50
  587. data/dist/es/ember-testing/tests/adapters_test.js +0 -405
  588. data/dist/es/ember-testing/tests/ext/rsvp_test.js +0 -124
  589. data/dist/es/ember-testing/tests/helper_registration_test.js +0 -98
  590. data/dist/es/ember-testing/tests/helpers_test.js +0 -1228
  591. data/dist/es/ember-testing/tests/integration_test.js +0 -106
  592. data/dist/es/ember-testing/tests/reexports_test.js +0 -26
  593. data/dist/es/ember-testing/tests/test/waiters-test.js +0 -145
  594. data/dist/es/ember-utils/index.js +0 -28
  595. data/dist/es/ember-utils/lib/cache.js +0 -36
  596. data/dist/es/ember-utils/lib/dictionary.js +0 -11
  597. data/dist/es/ember-utils/lib/guid.js +0 -120
  598. data/dist/es/ember-utils/lib/inspect.js +0 -112
  599. data/dist/es/ember-utils/lib/intern.js +0 -49
  600. data/dist/es/ember-utils/lib/invoke.js +0 -53
  601. data/dist/es/ember-utils/lib/is_proxy.js +0 -14
  602. data/dist/es/ember-utils/lib/lookup-descriptor.js +0 -11
  603. data/dist/es/ember-utils/lib/make-array.js +0 -7
  604. data/dist/es/ember-utils/lib/name.js +0 -9
  605. data/dist/es/ember-utils/lib/proxy-utils.js +0 -1
  606. data/dist/es/ember-utils/lib/spec.js +0 -14
  607. data/dist/es/ember-utils/lib/super.js +0 -83
  608. data/dist/es/ember-utils/lib/symbol-utils.js +0 -8
  609. data/dist/es/ember-utils/lib/symbol.js +0 -15
  610. data/dist/es/ember-utils/lib/to-string.js +0 -35
  611. data/dist/es/ember-utils/lib/weak_set.js +0 -18
  612. data/dist/es/ember-utils/tests/cache_test.js +0 -77
  613. data/dist/es/ember-utils/tests/can_invoke_test.js +0 -46
  614. data/dist/es/ember-utils/tests/checkHasSuper_test.js +0 -17
  615. data/dist/es/ember-utils/tests/generate_guid_test.js +0 -13
  616. data/dist/es/ember-utils/tests/guid_for_test.js +0 -101
  617. data/dist/es/ember-utils/tests/inspect_test.js +0 -146
  618. data/dist/es/ember-utils/tests/is_proxy_test.js +0 -18
  619. data/dist/es/ember-utils/tests/make_array_test.js +0 -41
  620. data/dist/es/ember-utils/tests/to-string-test.js +0 -32
  621. data/dist/es/ember-utils/tests/try_invoke_test.js +0 -48
  622. data/dist/es/ember-views/index.js +0 -28
  623. data/dist/es/ember-views/lib/compat/attrs.js +0 -3
  624. data/dist/es/ember-views/lib/compat/fallback-view-registry.js +0 -3
  625. data/dist/es/ember-views/lib/component_lookup.js +0 -27
  626. data/dist/es/ember-views/lib/mixins/action_support.js +0 -189
  627. data/dist/es/ember-views/lib/mixins/child_views_support.js +0 -27
  628. data/dist/es/ember-views/lib/mixins/class_names_support.js +0 -102
  629. data/dist/es/ember-views/lib/mixins/text_support.js +0 -333
  630. data/dist/es/ember-views/lib/mixins/view_state_support.js +0 -19
  631. data/dist/es/ember-views/lib/mixins/view_support.js +0 -452
  632. data/dist/es/ember-views/lib/system/action_manager.js +0 -14
  633. data/dist/es/ember-views/lib/system/event_dispatcher.js +0 -454
  634. data/dist/es/ember-views/lib/system/jquery.js +0 -29
  635. data/dist/es/ember-views/lib/system/jquery_event_deprecation.js +0 -61
  636. data/dist/es/ember-views/lib/system/lookup_partial.js +0 -55
  637. data/dist/es/ember-views/lib/system/utils.js +0 -201
  638. data/dist/es/ember-views/lib/utils/lookup-component.js +0 -58
  639. data/dist/es/ember-views/lib/views/core_view.js +0 -83
  640. data/dist/es/ember-views/lib/views/states.js +0 -48
  641. data/dist/es/ember-views/lib/views/states/default.js +0 -17
  642. data/dist/es/ember-views/lib/views/states/destroying.js +0 -16
  643. data/dist/es/ember-views/lib/views/states/has_element.js +0 -31
  644. data/dist/es/ember-views/lib/views/states/in_dom.js +0 -28
  645. data/dist/es/ember-views/lib/views/states/pre_render.js +0 -3
  646. data/dist/es/ember/index.js +0 -645
  647. data/dist/es/ember/tests/application_lifecycle_test.js +0 -188
  648. data/dist/es/ember/tests/component_context_test.js +0 -255
  649. data/dist/es/ember/tests/component_registration_test.js +0 -252
  650. data/dist/es/ember/tests/controller_test.js +0 -44
  651. data/dist/es/ember/tests/error_handler_test.js +0 -581
  652. data/dist/es/ember/tests/helpers/helper_registration_test.js +0 -103
  653. data/dist/es/ember/tests/helpers/link_to_test.js +0 -2103
  654. data/dist/es/ember/tests/helpers/link_to_test/link_to_transitioning_classes_test.js +0 -342
  655. data/dist/es/ember/tests/helpers/link_to_test/link_to_with_query_params_test.js +0 -694
  656. data/dist/es/ember/tests/homepage_example_test.js +0 -47
  657. data/dist/es/ember/tests/integration/multiple-app-test.js +0 -101
  658. data/dist/es/ember/tests/production_build_test.js +0 -34
  659. data/dist/es/ember/tests/reexports_test.js +0 -307
  660. data/dist/es/ember/tests/routing/decoupled_basic_test.js +0 -4506
  661. data/dist/es/ember/tests/routing/query_params_test.js +0 -1579
  662. data/dist/es/ember/tests/routing/query_params_test/model_dependent_state_with_query_params_test.js +0 -1117
  663. data/dist/es/ember/tests/routing/query_params_test/overlapping_query_params_test.js +0 -185
  664. data/dist/es/ember/tests/routing/query_params_test/query_param_async_get_handler_test.js +0 -327
  665. data/dist/es/ember/tests/routing/query_params_test/query_params_paramless_link_to_test.js +0 -37
  666. data/dist/es/ember/tests/routing/query_params_test/shared_state_test.js +0 -84
  667. data/dist/es/ember/tests/routing/router_map_test.js +0 -46
  668. data/dist/es/ember/tests/routing/router_service_test/basic_test.js +0 -95
  669. data/dist/es/ember/tests/routing/router_service_test/currenturl_lifecycle_test.js +0 -149
  670. data/dist/es/ember/tests/routing/router_service_test/isActive_test.js +0 -113
  671. data/dist/es/ember/tests/routing/router_service_test/replaceWith_test.js +0 -144
  672. data/dist/es/ember/tests/routing/router_service_test/transitionTo_test.js +0 -370
  673. data/dist/es/ember/tests/routing/router_service_test/urlFor_test.js +0 -307
  674. data/dist/es/ember/tests/routing/substates_test.js +0 -1110
  675. data/dist/es/ember/tests/routing/toplevel_dom_test.js +0 -37
  676. data/dist/es/ember/tests/service_injection_test.js +0 -278
  677. data/dist/es/ember/tests/view_instrumentation_test.js +0 -47
  678. data/dist/es/ember/version.js +0 -1
  679. data/dist/es/handlebars.js +0 -1268
  680. data/dist/es/internal-test-helpers/index.js +0 -31
  681. data/dist/es/internal-test-helpers/lib/.gitkeep +0 -0
  682. data/dist/es/internal-test-helpers/lib/apply-mixins.js +0 -37
  683. data/dist/es/internal-test-helpers/lib/browser-detect.js +0 -4
  684. data/dist/es/internal-test-helpers/lib/build-owner.js +0 -49
  685. data/dist/es/internal-test-helpers/lib/confirm-export.js +0 -45
  686. data/dist/es/internal-test-helpers/lib/ember-dev/assertion.js +0 -87
  687. data/dist/es/internal-test-helpers/lib/ember-dev/containers.js +0 -34
  688. data/dist/es/internal-test-helpers/lib/ember-dev/debug.js +0 -47
  689. data/dist/es/internal-test-helpers/lib/ember-dev/deprecation.js +0 -71
  690. data/dist/es/internal-test-helpers/lib/ember-dev/index.js +0 -19
  691. data/dist/es/internal-test-helpers/lib/ember-dev/method-call-tracker.js +0 -127
  692. data/dist/es/internal-test-helpers/lib/ember-dev/namespaces.js +0 -34
  693. data/dist/es/internal-test-helpers/lib/ember-dev/run-loop.js +0 -28
  694. data/dist/es/internal-test-helpers/lib/ember-dev/setup-qunit.js +0 -26
  695. data/dist/es/internal-test-helpers/lib/ember-dev/utils.js +0 -33
  696. data/dist/es/internal-test-helpers/lib/ember-dev/warning.js +0 -71
  697. data/dist/es/internal-test-helpers/lib/equal-inner-html.js +0 -37
  698. data/dist/es/internal-test-helpers/lib/equal-tokens.js +0 -53
  699. data/dist/es/internal-test-helpers/lib/factory.js +0 -65
  700. data/dist/es/internal-test-helpers/lib/get-all-property-names.js +0 -12
  701. data/dist/es/internal-test-helpers/lib/get-text-of.js +0 -3
  702. data/dist/es/internal-test-helpers/lib/matchers.js +0 -167
  703. data/dist/es/internal-test-helpers/lib/module-for.js +0 -89
  704. data/dist/es/internal-test-helpers/lib/registry-check.js +0 -28
  705. data/dist/es/internal-test-helpers/lib/run.js +0 -11
  706. data/dist/es/internal-test-helpers/lib/strip.js +0 -12
  707. data/dist/es/internal-test-helpers/lib/system/synthetic-events.js +0 -183
  708. data/dist/es/internal-test-helpers/lib/test-cases/abstract-application.js +0 -70
  709. data/dist/es/internal-test-helpers/lib/test-cases/abstract-rendering.js +0 -203
  710. data/dist/es/internal-test-helpers/lib/test-cases/abstract.js +0 -222
  711. data/dist/es/internal-test-helpers/lib/test-cases/application.js +0 -39
  712. data/dist/es/internal-test-helpers/lib/test-cases/autoboot-application.js +0 -34
  713. data/dist/es/internal-test-helpers/lib/test-cases/default-resolver-application.js +0 -43
  714. data/dist/es/internal-test-helpers/lib/test-cases/node-query.js +0 -120
  715. data/dist/es/internal-test-helpers/lib/test-cases/query-param.js +0 -124
  716. data/dist/es/internal-test-helpers/lib/test-cases/rendering.js +0 -14
  717. data/dist/es/internal-test-helpers/lib/test-cases/router.js +0 -26
  718. data/dist/es/internal-test-helpers/lib/test-cases/test-resolver-application.js +0 -40
  719. data/dist/es/internal-test-helpers/lib/test-resolver.js +0 -86
  720. data/dist/es/internal-test-helpers/tests/index-test.js +0 -10
  721. data/dist/es/route-recognizer.js +0 -685
  722. data/dist/es/router.js +0 -2454
  723. data/dist/es/rsvp.js +0 -2394
  724. data/dist/es/simple-html-tokenizer.js +0 -638
  725. data/dist/jquery/jquery.js +0 -10364
  726. data/dist/node/app-boot-test.js +0 -146
  727. data/dist/node/build-info-test.js +0 -177
  728. data/dist/node/component-rendering-test.js +0 -34
  729. data/dist/node/helpers/app-module.js +0 -198
  730. data/dist/node/helpers/assert-html-matches.js +0 -25
  731. data/dist/node/helpers/build-owner.js +0 -28
  732. data/dist/node/helpers/component-module.js +0 -137
  733. data/dist/node/sourcemap-test.js +0 -27
  734. data/dist/node/template-compiler-test.js +0 -45
  735. data/dist/node/visit-test.js +0 -349
  736. data/dist/qunit/qunit.css +0 -436
  737. data/dist/qunit/qunit.js +0 -5188
  738. data/dist/tests/index.html +0 -254
  739. data/ember-source.gemspec +0 -28
  740. data/node_modules/.yarn-integrity +0 -10
  741. data/yarn.lock +0 -4
@@ -1,157 +0,0 @@
1
- import { moduleFor, RenderingTest } from '../../utils/test-case';
2
- import { Component } from '../../utils/helpers';
3
- import { set } from 'ember-metal';
4
- import {
5
- subscribe as instrumentationSubscribe,
6
- reset as instrumentationReset,
7
- } from '@ember/instrumentation';
8
-
9
- moduleFor(
10
- 'Components instrumentation',
11
- class extends RenderingTest {
12
- constructor() {
13
- super(...arguments);
14
-
15
- this.resetEvents();
16
-
17
- instrumentationSubscribe('render.component', {
18
- before: (name, timestamp, payload) => {
19
- if (payload.view !== this.component) {
20
- this.actual.before.push(payload);
21
- }
22
- },
23
- after: (name, timestamp, payload) => {
24
- if (payload.view !== this.component) {
25
- this.actual.after.push(payload);
26
- }
27
- },
28
- });
29
- }
30
-
31
- resetEvents() {
32
- this.expected = {
33
- before: [],
34
- after: [],
35
- };
36
-
37
- this.actual = {
38
- before: [],
39
- after: [],
40
- };
41
- }
42
-
43
- teardown() {
44
- this.assert.deepEqual(this.actual.before, [], 'No unexpected events (before)');
45
- this.assert.deepEqual(this.actual.after, [], 'No unexpected events (after)');
46
- super.teardown();
47
- instrumentationReset();
48
- }
49
-
50
- ['@test zomg'](assert) {
51
- assert.ok(true);
52
- }
53
-
54
- ['@test it should receive an instrumentation event for both initial render and updates']() {
55
- let testCase = this;
56
-
57
- let BaseClass = Component.extend({
58
- tagName: '',
59
-
60
- willRender() {
61
- testCase.expected.before.push(this);
62
- testCase.expected.after.unshift(this);
63
- },
64
- });
65
-
66
- this.registerComponent('x-bar', {
67
- template: '[x-bar: {{bar}}] {{yield}}',
68
- ComponentClass: BaseClass.extend(),
69
- });
70
-
71
- this.registerComponent('x-baz', {
72
- template: '[x-baz: {{baz}}]',
73
- ComponentClass: BaseClass.extend(),
74
- });
75
-
76
- this.registerComponent('x-bat', {
77
- template: '[x-bat: {{bat}}]',
78
- ComponentClass: BaseClass.extend(),
79
- });
80
-
81
- this.render(
82
- `[-top-level: {{foo}}] {{#x-bar bar=bar}}{{x-baz baz=baz}}{{/x-bar}} {{x-bat bat=bat}}`,
83
- {
84
- foo: 'foo',
85
- bar: 'bar',
86
- baz: 'baz',
87
- bat: 'bat',
88
- }
89
- );
90
-
91
- this.assertText('[-top-level: foo] [x-bar: bar] [x-baz: baz] [x-bat: bat]');
92
-
93
- this.assertEvents('after initial render', true);
94
-
95
- this.runTask(() => this.rerender());
96
-
97
- this.assertEvents('after no-op rerender');
98
-
99
- this.runTask(() => set(this.context, 'foo', 'FOO'));
100
-
101
- this.assertEvents('after updating top-level');
102
-
103
- this.runTask(() => set(this.context, 'baz', 'BAZ'));
104
-
105
- this.assertEvents('after updating inner-most');
106
-
107
- this.runTask(() => {
108
- set(this.context, 'bar', 'BAR');
109
- set(this.context, 'bat', 'BAT');
110
- });
111
-
112
- this.assertEvents('after updating the rest');
113
-
114
- this.runTask(() => {
115
- set(this.context, 'foo', 'FOO');
116
- set(this.context, 'bar', 'BAR');
117
- set(this.context, 'baz', 'BAZ');
118
- set(this.context, 'bat', 'BAT');
119
- });
120
-
121
- this.assertEvents('after reset');
122
- }
123
-
124
- assertEvents(label, initialRender = false) {
125
- let { actual, expected } = this;
126
-
127
- this.assert.strictEqual(
128
- actual.before.length,
129
- actual.after.length,
130
- `${label}: before and after callbacks should be balanced`
131
- );
132
-
133
- this._assertEvents(`${label} (before):`, actual.before, expected.before, initialRender);
134
- this._assertEvents(`${label} (after):`, actual.before, expected.before, initialRender);
135
-
136
- this.resetEvents();
137
- }
138
-
139
- _assertEvents(label, actual, expected, initialRender) {
140
- this.assert.equal(
141
- actual.length,
142
- expected.length,
143
- `${label}: expected ${expected.length} and got ${actual.length}`
144
- );
145
-
146
- actual.forEach((payload, i) => this.assertPayload(payload, expected[i], initialRender));
147
- }
148
-
149
- assertPayload(payload, component, initialRender) {
150
- this.assert.equal(payload.object, component.toString(), 'payload.object');
151
- this.assert.ok(payload.containerKey, 'the container key should be present');
152
- this.assert.equal(payload.containerKey, component._debugContainerKey, 'payload.containerKey');
153
- this.assert.equal(payload.view, component, 'payload.view');
154
- this.assert.strictEqual(payload.initialRender, initialRender, 'payload.initialRender');
155
- }
156
- }
157
- );
@@ -1,1653 +0,0 @@
1
- import { schedule } from '@ember/runloop';
2
- import { set, setProperties } from 'ember-metal';
3
- import { A as emberA } from 'ember-runtime';
4
- import { Component } from '../../utils/helpers';
5
- import { strip } from '../../utils/abstract-test-case';
6
- import { moduleFor, RenderingTest } from '../../utils/test-case';
7
- import { getViewId, getViewElement, jQueryDisabled } from 'ember-views';
8
- import { classes } from '../../utils/test-helpers';
9
- import { tryInvoke } from 'ember-utils';
10
- import { runAppend } from 'internal-test-helpers';
11
-
12
- class LifeCycleHooksTest extends RenderingTest {
13
- constructor() {
14
- super(...arguments);
15
- this.hooks = [];
16
- this.components = {};
17
- this.componentRegistry = [];
18
- this.teardownAssertions = [];
19
- this.viewRegistry = this.owner.lookup('-view-registry:main');
20
- }
21
-
22
- afterEach() {
23
- super.afterEach();
24
-
25
- for (let i = 0; i < this.teardownAssertions.length; i++) {
26
- this.teardownAssertions[i]();
27
- }
28
- }
29
-
30
- get isInteractive() {
31
- return true;
32
- }
33
-
34
- getBootOptions() {
35
- return {
36
- isInteractive: this.isInteractive,
37
- };
38
- }
39
-
40
- /* abstract */
41
- get ComponentClass() {
42
- throw new Error('Not implemented: `ComponentClass`');
43
- }
44
-
45
- /* abstract */
46
- invocationFor(/* name, namedArgs = {} */) {
47
- throw new Error('Not implemented: `invocationFor`');
48
- }
49
-
50
- /* abstract */
51
- attrFor(/* name */) {
52
- throw new Error('Not implemented: `attrFor`');
53
- }
54
-
55
- get boundHelpers() {
56
- return {
57
- invoke: bind(this.invocationFor, this),
58
- attr: bind(this.attrFor, this),
59
- };
60
- }
61
-
62
- assertRegisteredViews(label) {
63
- let viewRegistry = this.viewRegistry;
64
- let topLevelId = getViewId(this.component);
65
- let actual = Object.keys(viewRegistry)
66
- .sort()
67
- .filter(id => id !== topLevelId);
68
-
69
- if (this.isInteractive) {
70
- let expected = this.componentRegistry.sort();
71
-
72
- this.assert.deepEqual(actual, expected, 'registered views - ' + label);
73
- } else {
74
- this.assert.deepEqual(actual, [], 'no views should be registered for non-interactive mode');
75
- }
76
- }
77
-
78
- registerComponent(name, { template = null }) {
79
- let pushComponent = instance => {
80
- this.components[name] = instance;
81
- this.componentRegistry.push(getViewId(instance));
82
- };
83
-
84
- let removeComponent = instance => {
85
- let index = this.componentRegistry.indexOf(instance);
86
- this.componentRegistry.splice(index, 1);
87
-
88
- delete this.components[name];
89
- };
90
-
91
- let pushHook = (hookName, args) => {
92
- this.hooks.push(hook(name, hookName, args));
93
- };
94
-
95
- let assertParentView = (hookName, instance) => {
96
- this.assert.ok(instance.parentView, `parentView should be present in ${hookName}`);
97
-
98
- if (hookName === 'willDestroyElement') {
99
- this.assert.ok(
100
- instance.parentView.childViews.indexOf(instance) !== -1,
101
- `view is still connected to parentView in ${hookName}`
102
- );
103
- }
104
- };
105
-
106
- let assertElement = (hookName, instance, inDOM = true) => {
107
- if (instance.tagName === '') {
108
- return;
109
- }
110
-
111
- this.assert.ok(
112
- getViewElement(instance),
113
- `element should be present on ${instance} during ${hookName}`
114
- );
115
-
116
- if (this.isInteractive) {
117
- this.assert.ok(
118
- instance.element,
119
- `this.element should be present on ${instance} during ${hookName}`
120
- );
121
- this.assert.equal(
122
- document.body.contains(instance.element),
123
- inDOM,
124
- `element for ${instance} ${
125
- inDOM ? 'should' : 'should not'
126
- } be in the DOM during ${hookName}`
127
- );
128
- } else {
129
- this.assert.throws(
130
- () => instance.element,
131
- /Accessing `this.element` is not allowed in non-interactive environments/
132
- );
133
- }
134
- };
135
-
136
- let assertNoElement = (hookName, instance) => {
137
- this.assert.strictEqual(
138
- getViewElement(instance),
139
- null,
140
- `element should not be present in ${hookName}`
141
- );
142
-
143
- if (this.isInteractive) {
144
- this.assert.strictEqual(
145
- instance.element,
146
- null,
147
- `this.element should not be present in ${hookName}`
148
- );
149
- } else {
150
- this.assert.throws(
151
- () => instance.element,
152
- /Accessing `this.element` is not allowed in non-interactive environments/
153
- );
154
- }
155
- };
156
-
157
- let assertState = (hookName, expectedState, instance) => {
158
- this.assert.equal(
159
- instance._state,
160
- expectedState,
161
- `within ${hookName} the expected _state is ${expectedState}`
162
- );
163
- };
164
-
165
- let { isInteractive } = this;
166
-
167
- let ComponentClass = this.ComponentClass.extend({
168
- init() {
169
- this._super(...arguments);
170
-
171
- this.isInitialRender = true;
172
- this.componentName = name;
173
- pushHook('init');
174
- pushComponent(this);
175
- assertParentView('init', this);
176
- assertNoElement('init', this);
177
- assertState('init', 'preRender', this);
178
-
179
- this.on('init', () => pushHook('on(init)'));
180
-
181
- schedule('afterRender', () => {
182
- this.isInitialRender = false;
183
- });
184
- },
185
-
186
- didReceiveAttrs(options) {
187
- pushHook('didReceiveAttrs', options);
188
- assertParentView('didReceiveAttrs', this);
189
-
190
- if (this.isInitialRender) {
191
- assertNoElement('didReceiveAttrs', this);
192
- assertState('didReceiveAttrs', 'preRender', this);
193
- } else {
194
- assertElement('didReceiveAttrs', this);
195
-
196
- if (isInteractive) {
197
- assertState('didReceiveAttrs', 'inDOM', this);
198
- } else {
199
- assertState('didReceiveAttrs', 'hasElement', this);
200
- }
201
- }
202
- },
203
-
204
- willInsertElement() {
205
- pushHook('willInsertElement');
206
- assertParentView('willInsertElement', this);
207
- assertElement('willInsertElement', this, false);
208
- assertState('willInsertElement', 'hasElement', this);
209
- },
210
-
211
- willRender() {
212
- pushHook('willRender');
213
- assertParentView('willRender', this);
214
-
215
- if (this.isInitialRender) {
216
- assertNoElement('willRender', this, false);
217
- assertState('willRender', 'preRender', this);
218
- } else {
219
- assertElement('willRender', this);
220
- assertState('willRender', 'inDOM', this);
221
- }
222
- },
223
-
224
- didInsertElement() {
225
- pushHook('didInsertElement');
226
- assertParentView('didInsertElement', this);
227
- assertElement('didInsertElement', this);
228
- assertState('didInsertElement', 'inDOM', this);
229
- },
230
-
231
- didRender() {
232
- pushHook('didRender');
233
- assertParentView('didRender', this);
234
- assertElement('didRender', this);
235
- assertState('didRender', 'inDOM', this);
236
- },
237
-
238
- didUpdateAttrs(options) {
239
- pushHook('didUpdateAttrs', options);
240
- assertParentView('didUpdateAttrs', this);
241
-
242
- if (isInteractive) {
243
- assertState('didUpdateAttrs', 'inDOM', this);
244
- } else {
245
- assertState('didUpdateAttrs', 'hasElement', this);
246
- }
247
- },
248
-
249
- willUpdate(options) {
250
- pushHook('willUpdate', options);
251
- assertParentView('willUpdate', this);
252
- assertElement('willUpdate', this);
253
- assertState('willUpdate', 'inDOM', this);
254
- },
255
-
256
- didUpdate(options) {
257
- pushHook('didUpdate', options);
258
- assertParentView('didUpdate', this);
259
- assertElement('didUpdate', this);
260
- assertState('didUpdate', 'inDOM', this);
261
- },
262
-
263
- willDestroyElement() {
264
- pushHook('willDestroyElement');
265
- assertParentView('willDestroyElement', this);
266
- assertElement('willDestroyElement', this);
267
- assertState('willDestroyElement', 'inDOM', this);
268
- },
269
-
270
- willClearRender() {
271
- pushHook('willClearRender');
272
- assertParentView('willClearRender', this);
273
- assertElement('willClearRender', this);
274
- assertState('willClearRender', 'inDOM', this);
275
- },
276
-
277
- didDestroyElement() {
278
- pushHook('didDestroyElement');
279
- assertNoElement('didDestroyElement', this);
280
- assertState('didDestroyElement', 'destroying', this);
281
- },
282
-
283
- willDestroy() {
284
- pushHook('willDestroy');
285
- removeComponent(this);
286
-
287
- this._super(...arguments);
288
- },
289
- });
290
-
291
- super.registerComponent(name, { ComponentClass, template });
292
- }
293
-
294
- assertHooks({ label, interactive, nonInteractive }) {
295
- let rawHooks = this.isInteractive ? interactive : nonInteractive;
296
- let hooks = rawHooks.map(raw => hook(...raw));
297
- this.assert.deepEqual(json(this.hooks), json(hooks), label);
298
- this.hooks = [];
299
- }
300
-
301
- ['@test lifecycle hooks are invoked in a predictable order']() {
302
- let { attr, invoke } = this.boundHelpers;
303
-
304
- this.registerComponent('the-top', {
305
- template: strip`
306
- <div>
307
- Twitter: {{${attr('twitter')}}}|
308
- ${invoke('the-middle', { name: string('Tom Dale') })}
309
- </div>`,
310
- });
311
-
312
- this.registerComponent('the-middle', {
313
- template: strip`
314
- <div>
315
- Name: {{${attr('name')}}}|
316
- ${invoke('the-bottom', { website: string('tomdale.net') })}
317
- </div>`,
318
- });
319
-
320
- this.registerComponent('the-bottom', {
321
- template: strip`
322
- <div>
323
- Website: {{${attr('website')}}}
324
- </div>`,
325
- });
326
-
327
- this.render(invoke('the-top', { twitter: expr('twitter') }), {
328
- twitter: '@tomdale',
329
- });
330
-
331
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
332
- this.assertRegisteredViews('intial render');
333
-
334
- this.assertHooks({
335
- label: 'after initial render',
336
-
337
- interactive: [
338
- // Sync hooks
339
-
340
- ['the-top', 'init'],
341
- ['the-top', 'on(init)'],
342
- ['the-top', 'didReceiveAttrs'],
343
- ['the-top', 'willRender'],
344
- ['the-top', 'willInsertElement'],
345
-
346
- ['the-middle', 'init'],
347
- ['the-middle', 'on(init)'],
348
- ['the-middle', 'didReceiveAttrs'],
349
- ['the-middle', 'willRender'],
350
- ['the-middle', 'willInsertElement'],
351
-
352
- ['the-bottom', 'init'],
353
- ['the-bottom', 'on(init)'],
354
- ['the-bottom', 'didReceiveAttrs'],
355
- ['the-bottom', 'willRender'],
356
- ['the-bottom', 'willInsertElement'],
357
-
358
- // Async hooks
359
-
360
- ['the-bottom', 'didInsertElement'],
361
- ['the-bottom', 'didRender'],
362
-
363
- ['the-middle', 'didInsertElement'],
364
- ['the-middle', 'didRender'],
365
-
366
- ['the-top', 'didInsertElement'],
367
- ['the-top', 'didRender'],
368
- ],
369
-
370
- nonInteractive: [
371
- // Sync hooks
372
- ['the-top', 'init'],
373
- ['the-top', 'on(init)'],
374
- ['the-top', 'didReceiveAttrs'],
375
-
376
- ['the-middle', 'init'],
377
- ['the-middle', 'on(init)'],
378
- ['the-middle', 'didReceiveAttrs'],
379
-
380
- ['the-bottom', 'init'],
381
- ['the-bottom', 'on(init)'],
382
- ['the-bottom', 'didReceiveAttrs'],
383
- ],
384
- });
385
-
386
- this.runTask(() => this.components['the-bottom'].rerender());
387
-
388
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
389
-
390
- this.assertHooks({
391
- label: 'after no-op rerender (bottom)',
392
-
393
- interactive: [
394
- // Sync hooks
395
- ['the-top', 'willUpdate'],
396
- ['the-top', 'willRender'],
397
-
398
- ['the-middle', 'willUpdate'],
399
- ['the-middle', 'willRender'],
400
-
401
- ['the-bottom', 'willUpdate'],
402
- ['the-bottom', 'willRender'],
403
-
404
- // Async hooks
405
-
406
- ['the-bottom', 'didUpdate'],
407
- ['the-bottom', 'didRender'],
408
-
409
- ['the-middle', 'didUpdate'],
410
- ['the-middle', 'didRender'],
411
-
412
- ['the-top', 'didUpdate'],
413
- ['the-top', 'didRender'],
414
- ],
415
-
416
- nonInteractive: [],
417
- });
418
-
419
- this.runTask(() => this.components['the-middle'].rerender());
420
-
421
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
422
-
423
- this.assertHooks({
424
- label: 'after no-op rerender (middle)',
425
-
426
- interactive: [
427
- // Sync hooks
428
-
429
- ['the-top', 'willUpdate'],
430
- ['the-top', 'willRender'],
431
-
432
- ['the-middle', 'willUpdate'],
433
- ['the-middle', 'willRender'],
434
-
435
- // Async hooks
436
-
437
- ['the-middle', 'didUpdate'],
438
- ['the-middle', 'didRender'],
439
-
440
- ['the-top', 'didUpdate'],
441
- ['the-top', 'didRender'],
442
- ],
443
-
444
- nonInteractive: [],
445
- });
446
-
447
- this.runTask(() => this.components['the-top'].rerender());
448
-
449
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
450
-
451
- this.assertHooks({
452
- label: 'after no-op rerender (top)',
453
-
454
- interactive: [
455
- // Sync hooks
456
-
457
- ['the-top', 'willUpdate'],
458
- ['the-top', 'willRender'],
459
-
460
- // Async hooks
461
-
462
- ['the-top', 'didUpdate'],
463
- ['the-top', 'didRender'],
464
- ],
465
-
466
- nonInteractive: [],
467
- });
468
-
469
- this.runTask(() => set(this.context, 'twitter', '@horsetomdale'));
470
-
471
- this.assertText('Twitter: @horsetomdale|Name: Tom Dale|Website: tomdale.net');
472
-
473
- // Because the `twitter` attr is only used by the topmost component,
474
- // and not passed down, we do not expect to see lifecycle hooks
475
- // called for child components. If the `didReceiveAttrs` hook used
476
- // the new attribute to rerender itself imperatively, that would result
477
- // in lifecycle hooks being invoked for the child.
478
-
479
- this.assertHooks({
480
- label: 'after update',
481
-
482
- interactive: [
483
- // Sync hooks
484
-
485
- ['the-top', 'didUpdateAttrs'],
486
- ['the-top', 'didReceiveAttrs'],
487
-
488
- ['the-top', 'willUpdate'],
489
- ['the-top', 'willRender'],
490
-
491
- // Async hooks
492
-
493
- ['the-top', 'didUpdate'],
494
- ['the-top', 'didRender'],
495
- ],
496
-
497
- nonInteractive: [
498
- // Sync hooks
499
- ['the-top', 'didUpdateAttrs'],
500
- ['the-top', 'didReceiveAttrs'],
501
- ],
502
- });
503
-
504
- this.teardownAssertions.push(() => {
505
- this.assertHooks({
506
- label: 'destroy',
507
-
508
- interactive: [
509
- ['the-top', 'willDestroyElement'],
510
- ['the-top', 'willClearRender'],
511
- ['the-middle', 'willDestroyElement'],
512
- ['the-middle', 'willClearRender'],
513
- ['the-bottom', 'willDestroyElement'],
514
- ['the-bottom', 'willClearRender'],
515
- ['the-top', 'didDestroyElement'],
516
- ['the-middle', 'didDestroyElement'],
517
- ['the-bottom', 'didDestroyElement'],
518
- ['the-top', 'willDestroy'],
519
- ['the-middle', 'willDestroy'],
520
- ['the-bottom', 'willDestroy'],
521
- ],
522
-
523
- nonInteractive: [
524
- ['the-top', 'willDestroy'],
525
- ['the-middle', 'willDestroy'],
526
- ['the-bottom', 'willDestroy'],
527
- ],
528
- });
529
-
530
- this.assertRegisteredViews('after destroy');
531
- });
532
- }
533
-
534
- ['@test lifecycle hooks are invoked in a correct sibling order']() {
535
- let { attr, invoke } = this.boundHelpers;
536
-
537
- this.registerComponent('the-parent', {
538
- template: strip`
539
- <div>
540
- ${invoke('the-first-child', { twitter: expr(attr('twitter')) })}|
541
- ${invoke('the-second-child', { name: expr(attr('name')) })}|
542
- ${invoke('the-last-child', { website: expr(attr('website')) })}
543
- </div>`,
544
- });
545
-
546
- this.registerComponent('the-first-child', {
547
- template: `Twitter: {{${attr('twitter')}}}`,
548
- });
549
-
550
- this.registerComponent('the-second-child', {
551
- template: `Name: {{${attr('name')}}}`,
552
- });
553
-
554
- this.registerComponent('the-last-child', {
555
- template: `Website: {{${attr('website')}}}`,
556
- });
557
-
558
- this.render(
559
- invoke('the-parent', {
560
- twitter: expr('twitter'),
561
- name: expr('name'),
562
- website: expr('website'),
563
- }),
564
- {
565
- twitter: '@tomdale',
566
- name: 'Tom Dale',
567
- website: 'tomdale.net',
568
- }
569
- );
570
-
571
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
572
- this.assertRegisteredViews('intial render');
573
-
574
- this.assertHooks({
575
- label: 'after initial render',
576
-
577
- interactive: [
578
- // Sync hooks
579
-
580
- ['the-parent', 'init'],
581
- ['the-parent', 'on(init)'],
582
- ['the-parent', 'didReceiveAttrs'],
583
- ['the-parent', 'willRender'],
584
- ['the-parent', 'willInsertElement'],
585
-
586
- ['the-first-child', 'init'],
587
- ['the-first-child', 'on(init)'],
588
- ['the-first-child', 'didReceiveAttrs'],
589
- ['the-first-child', 'willRender'],
590
- ['the-first-child', 'willInsertElement'],
591
-
592
- ['the-second-child', 'init'],
593
- ['the-second-child', 'on(init)'],
594
- ['the-second-child', 'didReceiveAttrs'],
595
- ['the-second-child', 'willRender'],
596
- ['the-second-child', 'willInsertElement'],
597
-
598
- ['the-last-child', 'init'],
599
- ['the-last-child', 'on(init)'],
600
- ['the-last-child', 'didReceiveAttrs'],
601
- ['the-last-child', 'willRender'],
602
- ['the-last-child', 'willInsertElement'],
603
-
604
- // Async hooks
605
-
606
- ['the-first-child', 'didInsertElement'],
607
- ['the-first-child', 'didRender'],
608
-
609
- ['the-second-child', 'didInsertElement'],
610
- ['the-second-child', 'didRender'],
611
-
612
- ['the-last-child', 'didInsertElement'],
613
- ['the-last-child', 'didRender'],
614
-
615
- ['the-parent', 'didInsertElement'],
616
- ['the-parent', 'didRender'],
617
- ],
618
-
619
- nonInteractive: [
620
- // Sync hooks
621
-
622
- ['the-parent', 'init'],
623
- ['the-parent', 'on(init)'],
624
- ['the-parent', 'didReceiveAttrs'],
625
-
626
- ['the-first-child', 'init'],
627
- ['the-first-child', 'on(init)'],
628
- ['the-first-child', 'didReceiveAttrs'],
629
-
630
- ['the-second-child', 'init'],
631
- ['the-second-child', 'on(init)'],
632
- ['the-second-child', 'didReceiveAttrs'],
633
-
634
- ['the-last-child', 'init'],
635
- ['the-last-child', 'on(init)'],
636
- ['the-last-child', 'didReceiveAttrs'],
637
- ],
638
- });
639
-
640
- this.runTask(() => this.components['the-first-child'].rerender());
641
-
642
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
643
-
644
- this.assertHooks({
645
- label: 'after no-op rerender (first child)',
646
-
647
- interactive: [
648
- // Sync hooks
649
-
650
- ['the-parent', 'willUpdate'],
651
- ['the-parent', 'willRender'],
652
-
653
- ['the-first-child', 'willUpdate'],
654
- ['the-first-child', 'willRender'],
655
-
656
- // Async hooks
657
-
658
- ['the-first-child', 'didUpdate'],
659
- ['the-first-child', 'didRender'],
660
-
661
- ['the-parent', 'didUpdate'],
662
- ['the-parent', 'didRender'],
663
- ],
664
-
665
- nonInteractive: [],
666
- });
667
-
668
- this.runTask(() => this.components['the-second-child'].rerender());
669
-
670
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
671
-
672
- this.assertHooks({
673
- label: 'after no-op rerender (second child)',
674
-
675
- interactive: [
676
- // Sync hooks
677
-
678
- ['the-parent', 'willUpdate'],
679
- ['the-parent', 'willRender'],
680
-
681
- ['the-second-child', 'willUpdate'],
682
- ['the-second-child', 'willRender'],
683
-
684
- // Async hooks
685
-
686
- ['the-second-child', 'didUpdate'],
687
- ['the-second-child', 'didRender'],
688
-
689
- ['the-parent', 'didUpdate'],
690
- ['the-parent', 'didRender'],
691
- ],
692
-
693
- nonInteractive: [],
694
- });
695
-
696
- this.runTask(() => this.components['the-last-child'].rerender());
697
-
698
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
699
-
700
- this.assertHooks({
701
- label: 'after no-op rerender (last child)',
702
-
703
- interactive: [
704
- // Sync hooks
705
-
706
- ['the-parent', 'willUpdate'],
707
- ['the-parent', 'willRender'],
708
-
709
- ['the-last-child', 'willUpdate'],
710
- ['the-last-child', 'willRender'],
711
-
712
- // Async hooks
713
-
714
- ['the-last-child', 'didUpdate'],
715
- ['the-last-child', 'didRender'],
716
-
717
- ['the-parent', 'didUpdate'],
718
- ['the-parent', 'didRender'],
719
- ],
720
-
721
- nonInteractive: [],
722
- });
723
-
724
- this.runTask(() => this.components['the-parent'].rerender());
725
-
726
- this.assertText('Twitter: @tomdale|Name: Tom Dale|Website: tomdale.net');
727
-
728
- this.assertHooks({
729
- label: 'after no-op rerender (parent)',
730
-
731
- interactive: [
732
- // Sync hooks
733
-
734
- ['the-parent', 'willUpdate'],
735
- ['the-parent', 'willRender'],
736
-
737
- // Async hooks
738
-
739
- ['the-parent', 'didUpdate'],
740
- ['the-parent', 'didRender'],
741
- ],
742
-
743
- nonInteractive: [],
744
- });
745
-
746
- this.runTask(() =>
747
- setProperties(this.context, {
748
- twitter: '@horsetomdale',
749
- name: 'Horse Tom Dale',
750
- website: 'horsetomdale.net',
751
- })
752
- );
753
-
754
- this.assertText('Twitter: @horsetomdale|Name: Horse Tom Dale|Website: horsetomdale.net');
755
-
756
- this.assertHooks({
757
- label: 'after update',
758
-
759
- interactive: [
760
- // Sync hooks
761
-
762
- ['the-parent', 'didUpdateAttrs'],
763
- ['the-parent', 'didReceiveAttrs'],
764
-
765
- ['the-parent', 'willUpdate'],
766
- ['the-parent', 'willRender'],
767
-
768
- ['the-first-child', 'didUpdateAttrs'],
769
- ['the-first-child', 'didReceiveAttrs'],
770
-
771
- ['the-first-child', 'willUpdate'],
772
- ['the-first-child', 'willRender'],
773
-
774
- ['the-second-child', 'didUpdateAttrs'],
775
- ['the-second-child', 'didReceiveAttrs'],
776
-
777
- ['the-second-child', 'willUpdate'],
778
- ['the-second-child', 'willRender'],
779
-
780
- ['the-last-child', 'didUpdateAttrs'],
781
- ['the-last-child', 'didReceiveAttrs'],
782
-
783
- ['the-last-child', 'willUpdate'],
784
- ['the-last-child', 'willRender'],
785
-
786
- // Async hooks
787
-
788
- ['the-first-child', 'didUpdate'],
789
- ['the-first-child', 'didRender'],
790
-
791
- ['the-second-child', 'didUpdate'],
792
- ['the-second-child', 'didRender'],
793
-
794
- ['the-last-child', 'didUpdate'],
795
- ['the-last-child', 'didRender'],
796
-
797
- ['the-parent', 'didUpdate'],
798
- ['the-parent', 'didRender'],
799
- ],
800
-
801
- nonInteractive: [
802
- // Sync hooks
803
-
804
- ['the-parent', 'didUpdateAttrs'],
805
- ['the-parent', 'didReceiveAttrs'],
806
-
807
- ['the-first-child', 'didUpdateAttrs'],
808
- ['the-first-child', 'didReceiveAttrs'],
809
-
810
- ['the-second-child', 'didUpdateAttrs'],
811
- ['the-second-child', 'didReceiveAttrs'],
812
-
813
- ['the-last-child', 'didUpdateAttrs'],
814
- ['the-last-child', 'didReceiveAttrs'],
815
- ],
816
- });
817
-
818
- this.teardownAssertions.push(() => {
819
- this.assertHooks({
820
- label: 'destroy',
821
-
822
- interactive: [
823
- ['the-parent', 'willDestroyElement'],
824
- ['the-parent', 'willClearRender'],
825
- ['the-first-child', 'willDestroyElement'],
826
- ['the-first-child', 'willClearRender'],
827
- ['the-second-child', 'willDestroyElement'],
828
- ['the-second-child', 'willClearRender'],
829
- ['the-last-child', 'willDestroyElement'],
830
- ['the-last-child', 'willClearRender'],
831
-
832
- ['the-parent', 'didDestroyElement'],
833
- ['the-first-child', 'didDestroyElement'],
834
- ['the-second-child', 'didDestroyElement'],
835
- ['the-last-child', 'didDestroyElement'],
836
-
837
- ['the-parent', 'willDestroy'],
838
- ['the-first-child', 'willDestroy'],
839
- ['the-second-child', 'willDestroy'],
840
- ['the-last-child', 'willDestroy'],
841
- ],
842
-
843
- nonInteractive: [
844
- ['the-parent', 'willDestroy'],
845
- ['the-first-child', 'willDestroy'],
846
- ['the-second-child', 'willDestroy'],
847
- ['the-last-child', 'willDestroy'],
848
- ],
849
- });
850
-
851
- this.assertRegisteredViews('after destroy');
852
- });
853
- }
854
-
855
- ['@test passing values through attrs causes lifecycle hooks to fire if the attribute values have changed']() {
856
- let { attr, invoke } = this.boundHelpers;
857
-
858
- this.registerComponent('the-top', {
859
- template: strip`
860
- <div>
861
- Top: ${invoke('the-middle', { twitterTop: expr(attr('twitter')) })}
862
- </div>`,
863
- });
864
-
865
- this.registerComponent('the-middle', {
866
- template: strip`
867
- <div>
868
- Middle: ${invoke('the-bottom', {
869
- twitterMiddle: expr(attr('twitterTop')),
870
- })}
871
- </div>`,
872
- });
873
-
874
- this.registerComponent('the-bottom', {
875
- template: strip`
876
- <div>
877
- Bottom: {{${attr('twitterMiddle')}}}
878
- </div>`,
879
- });
880
-
881
- this.render(invoke('the-top', { twitter: expr('twitter') }), {
882
- twitter: '@tomdale',
883
- });
884
-
885
- this.assertText('Top: Middle: Bottom: @tomdale');
886
- this.assertRegisteredViews('intial render');
887
-
888
- this.assertHooks({
889
- label: 'after initial render',
890
-
891
- interactive: [
892
- // Sync hooks
893
-
894
- ['the-top', 'init'],
895
- ['the-top', 'on(init)'],
896
- ['the-top', 'didReceiveAttrs'],
897
- ['the-top', 'willRender'],
898
- ['the-top', 'willInsertElement'],
899
-
900
- ['the-middle', 'init'],
901
- ['the-middle', 'on(init)'],
902
- ['the-middle', 'didReceiveAttrs'],
903
- ['the-middle', 'willRender'],
904
- ['the-middle', 'willInsertElement'],
905
-
906
- ['the-bottom', 'init'],
907
- ['the-bottom', 'on(init)'],
908
- ['the-bottom', 'didReceiveAttrs'],
909
- ['the-bottom', 'willRender'],
910
- ['the-bottom', 'willInsertElement'],
911
-
912
- // Async hooks
913
-
914
- ['the-bottom', 'didInsertElement'],
915
- ['the-bottom', 'didRender'],
916
-
917
- ['the-middle', 'didInsertElement'],
918
- ['the-middle', 'didRender'],
919
-
920
- ['the-top', 'didInsertElement'],
921
- ['the-top', 'didRender'],
922
- ],
923
-
924
- nonInteractive: [
925
- // Sync hooks
926
-
927
- ['the-top', 'init'],
928
- ['the-top', 'on(init)'],
929
- ['the-top', 'didReceiveAttrs'],
930
-
931
- ['the-middle', 'init'],
932
- ['the-middle', 'on(init)'],
933
- ['the-middle', 'didReceiveAttrs'],
934
-
935
- ['the-bottom', 'init'],
936
- ['the-bottom', 'on(init)'],
937
- ['the-bottom', 'didReceiveAttrs'],
938
- ],
939
- });
940
-
941
- this.runTask(() => set(this.context, 'twitter', '@horsetomdale'));
942
-
943
- this.assertText('Top: Middle: Bottom: @horsetomdale');
944
-
945
- // Because the `twitter` attr is used by the all of the components,
946
- // the lifecycle hooks are invoked for all components.
947
-
948
- this.assertHooks({
949
- label: 'after updating (root)',
950
-
951
- interactive: [
952
- // Sync hooks
953
-
954
- ['the-top', 'didUpdateAttrs'],
955
- ['the-top', 'didReceiveAttrs'],
956
-
957
- ['the-top', 'willUpdate'],
958
- ['the-top', 'willRender'],
959
-
960
- ['the-middle', 'didUpdateAttrs'],
961
- ['the-middle', 'didReceiveAttrs'],
962
-
963
- ['the-middle', 'willUpdate'],
964
- ['the-middle', 'willRender'],
965
-
966
- ['the-bottom', 'didUpdateAttrs'],
967
- ['the-bottom', 'didReceiveAttrs'],
968
-
969
- ['the-bottom', 'willUpdate'],
970
- ['the-bottom', 'willRender'],
971
-
972
- // Async hooks
973
-
974
- ['the-bottom', 'didUpdate'],
975
- ['the-bottom', 'didRender'],
976
-
977
- ['the-middle', 'didUpdate'],
978
- ['the-middle', 'didRender'],
979
-
980
- ['the-top', 'didUpdate'],
981
- ['the-top', 'didRender'],
982
- ],
983
-
984
- nonInteractive: [
985
- // Sync hooks
986
-
987
- ['the-top', 'didUpdateAttrs'],
988
- ['the-top', 'didReceiveAttrs'],
989
-
990
- ['the-middle', 'didUpdateAttrs'],
991
- ['the-middle', 'didReceiveAttrs'],
992
-
993
- ['the-bottom', 'didUpdateAttrs'],
994
- ['the-bottom', 'didReceiveAttrs'],
995
- ],
996
- });
997
-
998
- this.runTask(() => this.rerender());
999
-
1000
- this.assertText('Top: Middle: Bottom: @horsetomdale');
1001
-
1002
- // In this case, because the attrs are passed down, all child components are invoked.
1003
-
1004
- this.assertHooks({
1005
- label: 'after no-op rernder (root)',
1006
- interactive: [],
1007
- nonInteractive: [],
1008
- });
1009
-
1010
- this.teardownAssertions.push(() => {
1011
- this.assertHooks({
1012
- label: 'destroy',
1013
-
1014
- interactive: [
1015
- ['the-top', 'willDestroyElement'],
1016
- ['the-top', 'willClearRender'],
1017
- ['the-middle', 'willDestroyElement'],
1018
- ['the-middle', 'willClearRender'],
1019
- ['the-bottom', 'willDestroyElement'],
1020
- ['the-bottom', 'willClearRender'],
1021
- ['the-top', 'didDestroyElement'],
1022
- ['the-middle', 'didDestroyElement'],
1023
- ['the-bottom', 'didDestroyElement'],
1024
- ['the-top', 'willDestroy'],
1025
- ['the-middle', 'willDestroy'],
1026
- ['the-bottom', 'willDestroy'],
1027
- ],
1028
-
1029
- nonInteractive: [
1030
- ['the-top', 'willDestroy'],
1031
- ['the-middle', 'willDestroy'],
1032
- ['the-bottom', 'willDestroy'],
1033
- ],
1034
- });
1035
-
1036
- this.assertRegisteredViews('after destroy');
1037
- });
1038
- }
1039
-
1040
- ['@test components rendered from `{{each}}` have correct life-cycle hooks to be called']() {
1041
- let { invoke } = this.boundHelpers;
1042
-
1043
- this.registerComponent('nested-item', { template: `{{yield}}` });
1044
-
1045
- this.registerComponent('an-item', {
1046
- template: strip`
1047
- {{#nested-item}}Item: {{count}}{{/nested-item}}
1048
- `,
1049
- });
1050
-
1051
- this.registerComponent('no-items', {
1052
- template: strip`
1053
- {{#nested-item}}Nothing to see here{{/nested-item}}
1054
- `,
1055
- });
1056
-
1057
- this.render(
1058
- strip`
1059
- {{#each items as |item|}}
1060
- ${invoke('an-item', { count: expr('item') })}
1061
- {{else}}
1062
- ${invoke('no-items')}
1063
- {{/each}}
1064
- `,
1065
- {
1066
- items: [1, 2, 3, 4, 5],
1067
- }
1068
- );
1069
-
1070
- this.assertText('Item: 1Item: 2Item: 3Item: 4Item: 5');
1071
- this.assertRegisteredViews('intial render');
1072
-
1073
- let initialHooks = () => {
1074
- let ret = [['an-item', 'init'], ['an-item', 'on(init)'], ['an-item', 'didReceiveAttrs']];
1075
- if (this.isInteractive) {
1076
- ret.push(['an-item', 'willRender'], ['an-item', 'willInsertElement']);
1077
- }
1078
- ret.push(
1079
- ['nested-item', 'init'],
1080
- ['nested-item', 'on(init)'],
1081
- ['nested-item', 'didReceiveAttrs']
1082
- );
1083
- if (this.isInteractive) {
1084
- ret.push(['nested-item', 'willRender'], ['nested-item', 'willInsertElement']);
1085
- }
1086
- return ret;
1087
- };
1088
-
1089
- let initialAfterRenderHooks = () => {
1090
- if (this.isInteractive) {
1091
- return [
1092
- ['nested-item', 'didInsertElement'],
1093
- ['nested-item', 'didRender'],
1094
- ['an-item', 'didInsertElement'],
1095
- ['an-item', 'didRender'],
1096
- ];
1097
- } else {
1098
- return [];
1099
- }
1100
- };
1101
-
1102
- this.assertHooks({
1103
- label: 'after initial render',
1104
-
1105
- interactive: [
1106
- // Sync hooks
1107
- ...initialHooks(1),
1108
- ...initialHooks(2),
1109
- ...initialHooks(3),
1110
- ...initialHooks(4),
1111
- ...initialHooks(5),
1112
-
1113
- // Async hooks
1114
- ...initialAfterRenderHooks(5),
1115
- ...initialAfterRenderHooks(4),
1116
- ...initialAfterRenderHooks(3),
1117
- ...initialAfterRenderHooks(2),
1118
- ...initialAfterRenderHooks(1),
1119
- ],
1120
-
1121
- nonInteractive: [
1122
- // Sync hooks
1123
- ...initialHooks(1),
1124
- ...initialHooks(2),
1125
- ...initialHooks(3),
1126
- ...initialHooks(4),
1127
- ...initialHooks(5),
1128
-
1129
- // Async hooks
1130
- ...initialAfterRenderHooks(5),
1131
- ...initialAfterRenderHooks(4),
1132
- ...initialAfterRenderHooks(3),
1133
- ...initialAfterRenderHooks(2),
1134
- ...initialAfterRenderHooks(1),
1135
- ],
1136
- });
1137
-
1138
- // TODO: Is this correct? Should childViews be populated in non-interactive mode?
1139
- if (this.isInteractive) {
1140
- this.assert.equal(this.component.childViews.length, 5, 'childViews precond');
1141
- }
1142
-
1143
- this.runTask(() => set(this.context, 'items', []));
1144
-
1145
- // TODO: Is this correct? Should childViews be populated in non-interactive mode?
1146
- if (this.isInteractive) {
1147
- this.assert.equal(this.component.childViews.length, 1, 'childViews updated');
1148
- }
1149
-
1150
- this.assertText('Nothing to see here');
1151
-
1152
- this.assertHooks({
1153
- label: 'reset to empty array',
1154
-
1155
- interactive: [
1156
- ['an-item', 'willDestroyElement'],
1157
- ['an-item', 'willClearRender'],
1158
- ['nested-item', 'willDestroyElement'],
1159
- ['nested-item', 'willClearRender'],
1160
- ['an-item', 'willDestroyElement'],
1161
- ['an-item', 'willClearRender'],
1162
- ['nested-item', 'willDestroyElement'],
1163
- ['nested-item', 'willClearRender'],
1164
- ['an-item', 'willDestroyElement'],
1165
- ['an-item', 'willClearRender'],
1166
- ['nested-item', 'willDestroyElement'],
1167
- ['nested-item', 'willClearRender'],
1168
- ['an-item', 'willDestroyElement'],
1169
- ['an-item', 'willClearRender'],
1170
- ['nested-item', 'willDestroyElement'],
1171
- ['nested-item', 'willClearRender'],
1172
- ['an-item', 'willDestroyElement'],
1173
- ['an-item', 'willClearRender'],
1174
- ['nested-item', 'willDestroyElement'],
1175
- ['nested-item', 'willClearRender'],
1176
-
1177
- ['no-items', 'init'],
1178
- ['no-items', 'on(init)'],
1179
- ['no-items', 'didReceiveAttrs'],
1180
- ['no-items', 'willRender'],
1181
- ['no-items', 'willInsertElement'],
1182
-
1183
- ['nested-item', 'init'],
1184
- ['nested-item', 'on(init)'],
1185
- ['nested-item', 'didReceiveAttrs'],
1186
- ['nested-item', 'willRender'],
1187
- ['nested-item', 'willInsertElement'],
1188
-
1189
- ['an-item', 'didDestroyElement'],
1190
- ['nested-item', 'didDestroyElement'],
1191
- ['an-item', 'didDestroyElement'],
1192
- ['nested-item', 'didDestroyElement'],
1193
- ['an-item', 'didDestroyElement'],
1194
- ['nested-item', 'didDestroyElement'],
1195
- ['an-item', 'didDestroyElement'],
1196
- ['nested-item', 'didDestroyElement'],
1197
- ['an-item', 'didDestroyElement'],
1198
- ['nested-item', 'didDestroyElement'],
1199
-
1200
- ['nested-item', 'didInsertElement'],
1201
- ['nested-item', 'didRender'],
1202
- ['no-items', 'didInsertElement'],
1203
- ['no-items', 'didRender'],
1204
-
1205
- ['an-item', 'willDestroy'],
1206
- ['nested-item', 'willDestroy'],
1207
- ['an-item', 'willDestroy'],
1208
- ['nested-item', 'willDestroy'],
1209
- ['an-item', 'willDestroy'],
1210
- ['nested-item', 'willDestroy'],
1211
- ['an-item', 'willDestroy'],
1212
- ['nested-item', 'willDestroy'],
1213
- ['an-item', 'willDestroy'],
1214
- ['nested-item', 'willDestroy'],
1215
- ],
1216
-
1217
- nonInteractive: [
1218
- ['no-items', 'init'],
1219
- ['no-items', 'on(init)'],
1220
- ['no-items', 'didReceiveAttrs'],
1221
-
1222
- ['nested-item', 'init'],
1223
- ['nested-item', 'on(init)'],
1224
- ['nested-item', 'didReceiveAttrs'],
1225
-
1226
- ['an-item', 'willDestroy'],
1227
- ['nested-item', 'willDestroy'],
1228
- ['an-item', 'willDestroy'],
1229
- ['nested-item', 'willDestroy'],
1230
- ['an-item', 'willDestroy'],
1231
- ['nested-item', 'willDestroy'],
1232
- ['an-item', 'willDestroy'],
1233
- ['nested-item', 'willDestroy'],
1234
- ['an-item', 'willDestroy'],
1235
- ['nested-item', 'willDestroy'],
1236
- ],
1237
- });
1238
-
1239
- this.teardownAssertions.push(() => {
1240
- this.assertHooks({
1241
- label: 'destroy',
1242
-
1243
- interactive: [
1244
- ['no-items', 'willDestroyElement'],
1245
- ['no-items', 'willClearRender'],
1246
- ['nested-item', 'willDestroyElement'],
1247
- ['nested-item', 'willClearRender'],
1248
-
1249
- ['no-items', 'didDestroyElement'],
1250
- ['nested-item', 'didDestroyElement'],
1251
-
1252
- ['no-items', 'willDestroy'],
1253
- ['nested-item', 'willDestroy'],
1254
- ],
1255
-
1256
- nonInteractive: [['no-items', 'willDestroy'], ['nested-item', 'willDestroy']],
1257
- });
1258
-
1259
- this.assertRegisteredViews('after destroy');
1260
- });
1261
- }
1262
- }
1263
-
1264
- class CurlyComponentsTest extends LifeCycleHooksTest {
1265
- get ComponentClass() {
1266
- return Component;
1267
- }
1268
-
1269
- invocationFor(name, namedArgs = {}) {
1270
- let attrs = Object.keys(namedArgs)
1271
- .map(k => `${k}=${this.val(namedArgs[k])}`)
1272
- .join(' ');
1273
- return `{{${name} ${attrs}}}`;
1274
- }
1275
-
1276
- attrFor(name) {
1277
- return `${name}`;
1278
- }
1279
-
1280
- /* private */
1281
- val(value) {
1282
- if (value.isString) {
1283
- return JSON.stringify(value.value);
1284
- } else if (value.isExpr) {
1285
- return `(readonly ${value.value})`;
1286
- } else {
1287
- throw new Error(`Unknown value: ${value}`);
1288
- }
1289
- }
1290
- }
1291
-
1292
- moduleFor(
1293
- 'Components test: interactive lifecycle hooks (curly components)',
1294
- class extends CurlyComponentsTest {
1295
- get isInteractive() {
1296
- return true;
1297
- }
1298
- }
1299
- );
1300
-
1301
- moduleFor(
1302
- 'Components test: non-interactive lifecycle hooks (curly components)',
1303
- class extends CurlyComponentsTest {
1304
- get isInteractive() {
1305
- return false;
1306
- }
1307
- }
1308
- );
1309
-
1310
- moduleFor(
1311
- 'Components test: interactive lifecycle hooks (tagless curly components)',
1312
- class extends CurlyComponentsTest {
1313
- get ComponentClass() {
1314
- return Component.extend({ tagName: '' });
1315
- }
1316
-
1317
- get isInteractive() {
1318
- return true;
1319
- }
1320
- }
1321
- );
1322
-
1323
- moduleFor(
1324
- 'Components test: non-interactive lifecycle hooks (tagless curly components)',
1325
- class extends CurlyComponentsTest {
1326
- get ComponentClass() {
1327
- return Component.extend({ tagName: '' });
1328
- }
1329
-
1330
- get isInteractive() {
1331
- return false;
1332
- }
1333
- }
1334
- );
1335
-
1336
- moduleFor(
1337
- 'Run loop and lifecycle hooks',
1338
- class extends RenderingTest {
1339
- ['@test afterRender set']() {
1340
- let ComponentClass = Component.extend({
1341
- width: '5',
1342
- didInsertElement() {
1343
- schedule('afterRender', () => {
1344
- this.set('width', '10');
1345
- });
1346
- },
1347
- });
1348
-
1349
- let template = `{{width}}`;
1350
- this.registerComponent('foo-bar', { ComponentClass, template });
1351
-
1352
- this.render('{{foo-bar}}');
1353
-
1354
- this.assertText('10');
1355
-
1356
- this.runTask(() => this.rerender());
1357
-
1358
- this.assertText('10');
1359
- }
1360
-
1361
- ['@test afterRender set on parent']() {
1362
- let ComponentClass = Component.extend({
1363
- didInsertElement() {
1364
- schedule('afterRender', () => {
1365
- let parent = this.get('parent');
1366
- parent.set('foo', 'wat');
1367
- });
1368
- },
1369
- });
1370
-
1371
- let template = `{{foo}}`;
1372
-
1373
- this.registerComponent('foo-bar', { ComponentClass, template });
1374
-
1375
- this.render('{{foo-bar parent=this foo=foo}}');
1376
-
1377
- this.assertText('wat');
1378
-
1379
- this.runTask(() => this.rerender());
1380
-
1381
- this.assertText('wat');
1382
- }
1383
-
1384
- ['@test `willRender` can set before render (GH#14458)']() {
1385
- let ComponentClass = Component.extend({
1386
- tagName: 'a',
1387
- customHref: 'http://google.com',
1388
- attributeBindings: ['customHref:href'],
1389
- willRender() {
1390
- this.set('customHref', 'http://willRender.com');
1391
- },
1392
- });
1393
-
1394
- let template = `Hello World`;
1395
-
1396
- this.registerComponent('foo-bar', { ComponentClass, template });
1397
-
1398
- this.render(`{{foo-bar id="foo"}}`);
1399
-
1400
- this.assertElement(this.firstChild, {
1401
- tagName: 'a',
1402
- attrs: {
1403
- id: 'foo',
1404
- href: 'http://willRender.com',
1405
- class: classes('ember-view'),
1406
- },
1407
- });
1408
- }
1409
-
1410
- ['@test that thing about destroying'](assert) {
1411
- let ParentDestroyedElements = [];
1412
- let ChildDestroyedElements = [];
1413
-
1414
- let ParentComponent = Component.extend({
1415
- willDestroyElement() {
1416
- ParentDestroyedElements.push({
1417
- id: this.itemId,
1418
- name: 'parent-component',
1419
- hasParent: !!this.element.parentNode,
1420
- nextSibling: !!this.element.nextSibling,
1421
- previousSibling: !!this.element.previousSibling,
1422
- });
1423
- },
1424
- });
1425
-
1426
- let PartentTemplate = strip`
1427
- {{yield}}
1428
- <ul>
1429
- {{#nested-component nestedId=(concat itemId '-A')}}A{{/nested-component}}
1430
- {{#nested-component nestedId=(concat itemId '-B')}}B{{/nested-component}}
1431
- </ul>
1432
- `;
1433
-
1434
- let NestedComponent = Component.extend({
1435
- willDestroyElement() {
1436
- ChildDestroyedElements.push({
1437
- id: this.nestedId,
1438
- name: 'nested-component',
1439
- hasParent: !!this.element.parentNode,
1440
- nextSibling: !!this.element.nextSibling,
1441
- previousSibling: !!this.element.previousSibling,
1442
- });
1443
- },
1444
- });
1445
-
1446
- let NestedTemplate = `{{yield}}`;
1447
-
1448
- this.registerComponent('parent-component', {
1449
- ComponentClass: ParentComponent,
1450
- template: PartentTemplate,
1451
- });
1452
-
1453
- this.registerComponent('nested-component', {
1454
- ComponentClass: NestedComponent,
1455
- template: NestedTemplate,
1456
- });
1457
-
1458
- let array = emberA([{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }]);
1459
-
1460
- this.render(
1461
- strip`
1462
- {{#each items as |item|}}
1463
- {{#parent-component itemId=item.id}}{{item.id}}{{/parent-component}}
1464
- {{/each}}
1465
- {{#if model.shouldShow}}
1466
- {{#parent-component itemId=6}}6{{/parent-component}}
1467
- {{/if}}
1468
- {{#if model.shouldShow}}
1469
- {{#parent-component itemId=7}}7{{/parent-component}}
1470
- {{/if}}
1471
- `,
1472
- {
1473
- items: array,
1474
- model: { shouldShow: true },
1475
- }
1476
- );
1477
-
1478
- this.assertText('1AB2AB3AB4AB5AB6AB7AB');
1479
-
1480
- this.runTask(() => {
1481
- array.removeAt(2);
1482
- array.removeAt(2);
1483
- set(this.context, 'model.shouldShow', false);
1484
- });
1485
-
1486
- this.assertText('1AB2AB5AB');
1487
-
1488
- assertDestroyHooks(
1489
- assert,
1490
- [...ParentDestroyedElements],
1491
- [
1492
- {
1493
- id: 3,
1494
- hasParent: true,
1495
- nextSibling: true,
1496
- previousSibling: true,
1497
- },
1498
- {
1499
- id: 4,
1500
- hasParent: true,
1501
- nextSibling: true,
1502
- previousSibling: true,
1503
- },
1504
- {
1505
- id: 6,
1506
- hasParent: true,
1507
- nextSibling: true,
1508
- previousSibling: true,
1509
- },
1510
- {
1511
- id: 7,
1512
- hasParent: true,
1513
- nextSibling: false,
1514
- previousSibling: true,
1515
- },
1516
- ]
1517
- );
1518
-
1519
- assertDestroyHooks(
1520
- assert,
1521
- [...ChildDestroyedElements],
1522
- [
1523
- {
1524
- id: '3-A',
1525
- hasParent: true,
1526
- nextSibling: true,
1527
- previousSibling: false,
1528
- },
1529
- {
1530
- id: '3-B',
1531
- hasParent: true,
1532
- nextSibling: false,
1533
- previousSibling: true,
1534
- },
1535
- {
1536
- id: '4-A',
1537
- hasParent: true,
1538
- nextSibling: true,
1539
- previousSibling: false,
1540
- },
1541
- {
1542
- id: '4-B',
1543
- hasParent: true,
1544
- nextSibling: false,
1545
- previousSibling: true,
1546
- },
1547
- {
1548
- id: '6-A',
1549
- hasParent: true,
1550
- nextSibling: true,
1551
- previousSibling: false,
1552
- },
1553
- {
1554
- id: '6-B',
1555
- hasParent: true,
1556
- nextSibling: false,
1557
- previousSibling: true,
1558
- },
1559
- {
1560
- id: '7-A',
1561
- hasParent: true,
1562
- nextSibling: true,
1563
- previousSibling: false,
1564
- },
1565
- {
1566
- id: '7-B',
1567
- hasParent: true,
1568
- nextSibling: false,
1569
- previousSibling: true,
1570
- },
1571
- ]
1572
- );
1573
- }
1574
- }
1575
- );
1576
-
1577
- if (!jQueryDisabled) {
1578
- moduleFor(
1579
- 'Run loop and lifecycle hooks - jQuery only',
1580
- class extends RenderingTest {
1581
- ['@test lifecycle hooks have proper access to this.$()'](assert) {
1582
- assert.expect(6);
1583
- let component;
1584
- let FooBarComponent = Component.extend({
1585
- tagName: 'div',
1586
- init() {
1587
- assert.notOk(this.$(), 'no access to element via this.$() on init() enter');
1588
- this._super(...arguments);
1589
- assert.notOk(this.$(), 'no access to element via this.$() after init() finished');
1590
- },
1591
- willInsertElement() {
1592
- component = this;
1593
- assert.ok(this.$(), 'willInsertElement has access to element via this.$()');
1594
- },
1595
- didInsertElement() {
1596
- assert.ok(this.$(), 'didInsertElement has access to element via this.$()');
1597
- },
1598
- willDestroyElement() {
1599
- assert.ok(this.$(), 'willDestroyElement has access to element via this.$()');
1600
- },
1601
- didDestroyElement() {
1602
- assert.notOk(
1603
- this.$(),
1604
- 'didDestroyElement does not have access to element via this.$()'
1605
- );
1606
- },
1607
- });
1608
- this.registerComponent('foo-bar', {
1609
- ComponentClass: FooBarComponent,
1610
- template: 'hello',
1611
- });
1612
- let { owner } = this;
1613
- let comp = owner.lookup('component:foo-bar');
1614
- runAppend(comp);
1615
- this.runTask(() => tryInvoke(component, 'destroy'));
1616
- }
1617
- }
1618
- );
1619
- }
1620
-
1621
- function assertDestroyHooks(assert, _actual, _expected) {
1622
- _expected.forEach((expected, i) => {
1623
- let name = expected.name;
1624
- assert.equal(expected.id, _actual[i].id, `${name} id is the same`);
1625
- assert.equal(expected.hasParent, _actual[i].hasParent, `${name} has parent node`);
1626
- assert.equal(expected.nextSibling, _actual[i].nextSibling, `${name} has next sibling node`);
1627
- assert.equal(
1628
- expected.previousSibling,
1629
- _actual[i].previousSibling,
1630
- `${name} has previous sibling node`
1631
- );
1632
- });
1633
- }
1634
-
1635
- function bind(func, thisArg) {
1636
- return (...args) => func.apply(thisArg, args);
1637
- }
1638
-
1639
- function string(value) {
1640
- return { isString: true, value };
1641
- }
1642
-
1643
- function expr(value) {
1644
- return { isExpr: true, value };
1645
- }
1646
-
1647
- function hook(name, hook, { attrs, oldAttrs, newAttrs } = {}) {
1648
- return { name, hook, args: { attrs, oldAttrs, newAttrs } };
1649
- }
1650
-
1651
- function json(serializable) {
1652
- return JSON.parse(JSON.stringify(serializable));
1653
- }