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,1251 +0,0 @@
1
- import { get, set, notifyPropertyChange } from 'ember-metal';
2
- import { applyMixins, strip } from '../../utils/abstract-test-case';
3
- import { moduleFor, RenderingTest } from '../../utils/test-case';
4
- import { A as emberA, ArrayProxy, RSVP } from 'ember-runtime';
5
- import { Component, htmlSafe } from '../../utils/helpers';
6
- import { HAS_NATIVE_SYMBOL } from 'ember-utils';
7
-
8
- import {
9
- TogglingSyntaxConditionalsTest,
10
- TruthyGenerator,
11
- FalsyGenerator,
12
- ArrayTestCases,
13
- } from '../../utils/shared-conditional-tests';
14
-
15
- class ArrayDelegate {
16
- constructor(content, target) {
17
- this._array = content;
18
- this._target = target || this;
19
- }
20
-
21
- // The following methods are APIs used by the tests
22
-
23
- toArray() {
24
- return this._array.slice();
25
- }
26
-
27
- objectAt(idx) {
28
- return this._array[idx];
29
- }
30
-
31
- clear() {
32
- this._array.length = 0;
33
- this.arrayContentDidChange();
34
- }
35
-
36
- replace(idx, del, ins) {
37
- this._array.splice(idx, del, ...ins);
38
- this.arrayContentDidChange();
39
- }
40
-
41
- unshiftObject(obj) {
42
- this._array.unshift(obj);
43
- this.arrayContentDidChange();
44
- }
45
-
46
- unshiftObjects(arr) {
47
- this._array.unshift(...arr);
48
- this.arrayContentDidChange();
49
- }
50
-
51
- pushObject(obj) {
52
- this._array.push(obj);
53
- this.arrayContentDidChange();
54
- }
55
-
56
- pushObjects(arr) {
57
- this._array.push(...arr);
58
- this.arrayContentDidChange();
59
- }
60
-
61
- shiftObject() {
62
- let obj = this._array.shift();
63
- this.arrayContentDidChange();
64
- return obj;
65
- }
66
-
67
- popObject() {
68
- let obj = this._array.pop();
69
- this.arrayContentDidChange();
70
- return obj;
71
- }
72
-
73
- insertAt(idx, obj) {
74
- this._array.splice(idx, 0, obj);
75
- this.arrayContentDidChange();
76
- }
77
-
78
- removeAt(idx, len = 1) {
79
- this._array.splice(idx, len);
80
- this.arrayContentDidChange();
81
- }
82
-
83
- arrayContentDidChange() {
84
- notifyPropertyChange(this._target, '[]');
85
- notifyPropertyChange(this._target, 'length');
86
- }
87
-
88
- toString() {
89
- return `#<${this.constructor.name || 'UnknownArrayDelegate'}>`;
90
- }
91
-
92
- toJSON() {
93
- return this.toString();
94
- }
95
- }
96
-
97
- const makeSet = (() => {
98
- // IE11 does not support `new Set(items);`
99
- let set = new Set([1, 2, 3]);
100
-
101
- if (set.size === 3) {
102
- return items => new Set(items);
103
- } else {
104
- return items => {
105
- let s = new Set();
106
- items.forEach(value => s.add(value));
107
- return s;
108
- };
109
- }
110
- })();
111
-
112
- class SetDelegate extends ArrayDelegate {
113
- constructor(set) {
114
- let array = [];
115
- set.forEach(value => array.push(value));
116
- super(array, set);
117
- this._set = set;
118
- }
119
-
120
- arrayContentDidChange() {
121
- this._set.clear();
122
- this._array.forEach(value => this._set.add(value));
123
- super.arrayContentDidChange();
124
- }
125
- }
126
-
127
- class ForEachable extends ArrayDelegate {
128
- get length() {
129
- return this._array.length;
130
- }
131
-
132
- forEach(callback) {
133
- this._array.forEach(callback);
134
- }
135
- }
136
-
137
- let ArrayIterable;
138
-
139
- if (HAS_NATIVE_SYMBOL) {
140
- ArrayIterable = class extends ArrayDelegate {
141
- [Symbol.iterator]() {
142
- return this._array[Symbol.iterator]();
143
- }
144
- };
145
- }
146
-
147
- class TogglingEachTest extends TogglingSyntaxConditionalsTest {
148
- get truthyValue() {
149
- return ['non-empty'];
150
- }
151
- get falsyValue() {
152
- return [];
153
- }
154
- }
155
-
156
- class BasicEachTest extends TogglingEachTest {}
157
-
158
- const TRUTHY_CASES = [
159
- ['hello'],
160
- emberA(['hello']),
161
- makeSet(['hello']),
162
- new ForEachable(['hello']),
163
- ArrayProxy.create({ content: ['hello'] }),
164
- ArrayProxy.create({ content: emberA(['hello']) }),
165
- ];
166
-
167
- const FALSY_CASES = [
168
- null,
169
- undefined,
170
- false,
171
- '',
172
- 0,
173
- [],
174
- emberA([]),
175
- makeSet([]),
176
- new ForEachable([]),
177
- ArrayProxy.create({ content: [] }),
178
- ArrayProxy.create({ content: emberA([]) }),
179
- ];
180
-
181
- if (HAS_NATIVE_SYMBOL) {
182
- TRUTHY_CASES.push(new ArrayIterable(['hello']));
183
- FALSY_CASES.push(new ArrayIterable([]));
184
- }
185
-
186
- applyMixins(
187
- BasicEachTest,
188
- new TruthyGenerator(TRUTHY_CASES),
189
- new FalsyGenerator(FALSY_CASES),
190
- ArrayTestCases
191
- );
192
-
193
- moduleFor(
194
- 'Syntax test: toggling {{#each}}',
195
- class extends BasicEachTest {
196
- templateFor({ cond, truthy, falsy }) {
197
- return `{{#each ${cond}}}${truthy}{{else}}${falsy}{{/each}}`;
198
- }
199
- }
200
- );
201
-
202
- moduleFor(
203
- 'Syntax test: toggling {{#each as}}',
204
- class extends BasicEachTest {
205
- templateFor({ cond, truthy, falsy }) {
206
- return `{{#each ${cond} as |test|}}${truthy}{{else}}${falsy}{{/each}}`;
207
- }
208
- }
209
- );
210
-
211
- class EachEdgeCasesTest extends TogglingEachTest {}
212
-
213
- applyMixins(
214
- EachEdgeCasesTest,
215
-
216
- new FalsyGenerator([
217
- true,
218
- 'hello',
219
- 1,
220
- Object,
221
- function() {},
222
- {},
223
- { foo: 'bar' },
224
- Object.create(null),
225
- Object.create({}),
226
- Object.create({ foo: 'bar' }),
227
- ])
228
- );
229
-
230
- moduleFor(
231
- 'Syntax test: toggling {{#each}}',
232
- class extends EachEdgeCasesTest {
233
- templateFor({ cond, truthy, falsy }) {
234
- return `{{#each ${cond}}}${truthy}{{else}}${falsy}{{/each}}`;
235
- }
236
- }
237
- );
238
-
239
- moduleFor(
240
- 'Syntax test: toggling {{#each as}}',
241
- class extends EachEdgeCasesTest {
242
- templateFor({ cond, truthy, falsy }) {
243
- return `{{#each ${cond} as |test|}}${truthy}{{else}}${falsy}{{/each}}`;
244
- }
245
- }
246
- );
247
-
248
- class AbstractEachTest extends RenderingTest {
249
- /* abstract */
250
- createList(/* items */) {
251
- throw new Error('Not implemented: `createList`');
252
- }
253
-
254
- makeList(items) {
255
- let { list, delegate } = this.createList(items);
256
-
257
- this.list = list;
258
- this.delegate = delegate;
259
- }
260
-
261
- replaceList(list) {
262
- this.runTask(() => set(this.context, 'list', this.createList(list).list));
263
- }
264
-
265
- forEach(callback) {
266
- return this.delegate.toArray().forEach(callback);
267
- }
268
-
269
- objectAt(idx) {
270
- return this.delegate.objectAt(idx);
271
- }
272
-
273
- clear() {
274
- return this.delegate.clear();
275
- }
276
-
277
- replace(idx, del, ins) {
278
- return this.delegate.replace(idx, del, ins);
279
- }
280
-
281
- unshiftObject(obj) {
282
- return this.delegate.unshiftObject(obj);
283
- }
284
-
285
- unshiftObjects(arr) {
286
- return this.delegate.unshiftObjects(arr);
287
- }
288
-
289
- pushObject(obj) {
290
- return this.delegate.pushObject(obj);
291
- }
292
-
293
- pushObjects(arr) {
294
- return this.delegate.pushObjects(arr);
295
- }
296
-
297
- shiftObject() {
298
- return this.delegate.shiftObject();
299
- }
300
-
301
- popObject() {
302
- return this.delegate.popObject();
303
- }
304
-
305
- insertAt(idx, obj) {
306
- return this.delegate.insertAt(idx, obj);
307
- }
308
-
309
- removeAt(idx, len) {
310
- return this.delegate.removeAt(idx, len);
311
- }
312
-
313
- render(template, context = {}) {
314
- if (this.list !== undefined) {
315
- context.list = this.list;
316
- }
317
-
318
- return super.render(template, context);
319
- }
320
- }
321
-
322
- class EachTest extends AbstractEachTest {
323
- /* single each */
324
-
325
- ['@test it repeats the given block for each item in the array']() {
326
- this.makeList([{ text: 'hello' }]);
327
-
328
- this.render(`{{#each list as |item|}}{{item.text}}{{else}}Empty{{/each}}`);
329
-
330
- this.assertText('hello');
331
-
332
- this.runTask(() => this.rerender());
333
-
334
- this.assertText('hello');
335
-
336
- this.runTask(() => set(this.objectAt(0), 'text', 'Hello'));
337
-
338
- this.assertText('Hello');
339
-
340
- this.runTask(() => {
341
- this.pushObject({ text: ' ' });
342
- this.pushObject({ text: 'World' });
343
- });
344
-
345
- this.assertText('Hello World');
346
-
347
- this.runTask(() => {
348
- this.pushObject({ text: 'Earth' });
349
- this.removeAt(1);
350
- this.insertAt(1, { text: 'Globe' });
351
- });
352
-
353
- this.assertText('HelloGlobeWorldEarth');
354
-
355
- this.runTask(() => {
356
- this.pushObject({ text: 'Planet' });
357
- this.removeAt(1);
358
- this.insertAt(1, { text: ' ' });
359
- this.pushObject({ text: ' ' });
360
- this.pushObject({ text: 'Earth' });
361
- this.removeAt(3);
362
- });
363
-
364
- this.assertText('Hello WorldPlanet Earth');
365
-
366
- this.runTask(() => {
367
- this.pushObject({ text: 'Globe' });
368
- this.removeAt(1);
369
- this.insertAt(1, { text: ' ' });
370
- this.pushObject({ text: ' ' });
371
- this.pushObject({ text: 'World' });
372
- this.removeAt(2);
373
- });
374
-
375
- this.assertText('Hello Planet EarthGlobe World');
376
-
377
- this.runTask(() => this.replace(2, 4, [{ text: 'my' }]));
378
-
379
- this.assertText('Hello my World');
380
-
381
- this.runTask(() => this.clear());
382
-
383
- this.assertText('Empty');
384
-
385
- this.replaceList([{ text: 'hello' }]);
386
-
387
- this.assertText('hello');
388
- }
389
-
390
- ['@test it receives the index as the second parameter']() {
391
- this.makeList([{ text: 'hello' }, { text: 'world' }]);
392
-
393
- this.render(`{{#each list as |item index|}}[{{index}}. {{item.text}}]{{/each}}`);
394
-
395
- this.assertText('[0. hello][1. world]');
396
-
397
- this.assertStableRerender();
398
-
399
- this.runTask(() => this.insertAt(1, { text: 'my' }));
400
-
401
- this.assertText('[0. hello][1. my][2. world]');
402
-
403
- this.replaceList([{ text: 'hello' }, { text: 'world' }]);
404
-
405
- this.assertText('[0. hello][1. world]');
406
- }
407
-
408
- ['@test it accepts a string key']() {
409
- this.makeList([{ text: 'hello' }, { text: 'world' }]);
410
-
411
- this.render(`{{#each list key='text' as |item|}}{{item.text}}{{/each}}`);
412
-
413
- this.assertText('helloworld');
414
-
415
- this.assertStableRerender();
416
-
417
- this.runTask(() => this.pushObject({ text: 'again' }));
418
-
419
- this.assertText('helloworldagain');
420
-
421
- this.replaceList([{ text: 'hello' }, { text: 'world' }]);
422
-
423
- this.assertText('helloworld');
424
- }
425
-
426
- ['@test it accepts a numeric key']() {
427
- this.makeList([{ id: 1 }, { id: 2 }]);
428
-
429
- this.render(`{{#each list key='id' as |item|}}{{item.id}}{{/each}}`);
430
-
431
- this.assertText('12');
432
-
433
- this.assertStableRerender();
434
-
435
- this.runTask(() => this.pushObject({ id: 3 }));
436
-
437
- this.assertText('123');
438
-
439
- this.replaceList([{ id: 1 }, { id: 2 }]);
440
-
441
- this.assertText('12');
442
- }
443
-
444
- ['@test it can specify @index as the key']() {
445
- this.makeList([{ id: 1 }, { id: 2 }]);
446
-
447
- this.render(`{{#each list key='@index' as |item|}}{{item.id}}{{/each}}`);
448
-
449
- this.assertText('12');
450
-
451
- this.assertStableRerender();
452
-
453
- this.runTask(() => this.pushObject({ id: 3 }));
454
-
455
- this.assertText('123');
456
-
457
- this.replaceList([{ id: 1 }, { id: 2 }]);
458
-
459
- this.assertText('12');
460
- }
461
-
462
- ['@test it can specify @identity as the key for arrays of primitives']() {
463
- this.makeList([1, 2]);
464
-
465
- this.render(`{{#each list key='@identity' as |item|}}{{item}}{{/each}}`);
466
-
467
- this.assertText('12');
468
-
469
- this.assertStableRerender();
470
-
471
- this.runTask(() => this.pushObject(3));
472
-
473
- this.assertText('123');
474
-
475
- this.replaceList([1, 2]);
476
-
477
- this.assertText('12');
478
- }
479
-
480
- ['@test it can specify @identity as the key for mixed arrays of objects and primitives']() {
481
- this.makeList([1, { id: 2 }, 3]);
482
-
483
- this.render(`{{#each list key='@identity' as |item|}}{{if item.id item.id item}}{{/each}}`);
484
-
485
- this.assertText('123');
486
-
487
- this.assertStableRerender();
488
-
489
- this.runTask(() => this.insertAt(2, { id: 4 }));
490
-
491
- this.assertText('1243');
492
-
493
- this.replaceList([1, { id: 2 }, 3]);
494
-
495
- this.assertText('123');
496
- }
497
-
498
- ['@test it can render duplicate primitive items']() {
499
- this.makeList(['a', 'a', 'a']);
500
-
501
- this.render(`{{#each list as |item|}}{{item}}{{/each}}`);
502
-
503
- this.assertText('aaa');
504
-
505
- this.assertStableRerender();
506
-
507
- this.runTask(() => this.pushObject('a'));
508
-
509
- this.assertText('aaaa');
510
-
511
- this.runTask(() => this.pushObject('a'));
512
-
513
- this.assertText('aaaaa');
514
-
515
- this.replaceList(['a', 'a', 'a']);
516
-
517
- this.assertText('aaa');
518
- }
519
-
520
- [`@test updating and setting within #each`]() {
521
- this.makeList([{ value: 1 }, { value: 2 }, { value: 3 }]);
522
-
523
- let FooBarComponent = Component.extend({
524
- init() {
525
- this._super(...arguments);
526
- this.isEven = true;
527
- this.tagName = 'li';
528
- },
529
-
530
- _isEven() {
531
- this.set('isEven', this.get('item.value') % 2 === 0);
532
- },
533
-
534
- didUpdate() {
535
- this._isEven();
536
- },
537
- });
538
-
539
- this.registerComponent('foo-bar', {
540
- ComponentClass: FooBarComponent,
541
- template: '{{#if isEven}}{{item.value}}{{/if}}',
542
- });
543
-
544
- this.render(strip`
545
- {{#each list as |item|}}
546
- <li>Prev</li>
547
- {{foo-bar item=item}}
548
- <li>Next</li>
549
- {{/each}}
550
- `);
551
-
552
- this.assertText('Prev1NextPrev2NextPrev3Next');
553
-
554
- this.assertStableRerender();
555
-
556
- this.runTask(() => set(this.objectAt(0), 'value', 3));
557
-
558
- this.assertText('PrevNextPrev2NextPrev3Next');
559
-
560
- this.replaceList([{ value: 1 }, { value: 2 }, { value: 3 }]);
561
-
562
- this.assertText('Prev1NextPrev2NextPrev3Next');
563
- }
564
-
565
- ['@test it can render duplicate objects']() {
566
- let duplicateItem = { text: 'foo' };
567
-
568
- this.makeList([duplicateItem, duplicateItem, { text: 'bar' }, { text: 'baz' }]);
569
-
570
- this.render(`{{#each list as |item|}}{{item.text}}{{/each}}`);
571
-
572
- this.assertText('foofoobarbaz');
573
-
574
- this.assertStableRerender();
575
-
576
- this.runTask(() => this.pushObject(duplicateItem));
577
-
578
- this.assertText('foofoobarbazfoo');
579
-
580
- this.runTask(() => this.pushObject(duplicateItem));
581
-
582
- this.assertText('foofoobarbazfoofoo');
583
-
584
- this.replaceList([duplicateItem, duplicateItem, { text: 'bar' }, { text: 'baz' }]);
585
-
586
- this.assertText('foofoobarbaz');
587
- }
588
-
589
- [`@test it maintains DOM stability when condition changes between objects with the same keys`]() {
590
- this.makeList([{ text: 'Hello' }, { text: ' ' }, { text: 'world' }]);
591
-
592
- this.render(`{{#each list key="text" as |item|}}{{item.text}}{{/each}}`);
593
-
594
- this.assertText('Hello world');
595
-
596
- this.takeSnapshot();
597
-
598
- this.runTask(() => {
599
- this.popObject();
600
- this.popObject();
601
- this.pushObject({ text: ' ' });
602
- this.pushObject({ text: 'world' });
603
- });
604
-
605
- this.assertText('Hello world');
606
-
607
- this.assertInvariants();
608
-
609
- this.replaceList([{ text: 'Hello' }, { text: ' ' }, { text: 'world' }]);
610
-
611
- this.assertText('Hello world');
612
-
613
- this.assertInvariants();
614
- }
615
-
616
- [`@test it maintains DOM stability for stable keys when list is updated`]() {
617
- this.makeList([{ text: 'Hello' }, { text: ' ' }, { text: 'world' }]);
618
-
619
- this.render(`{{#each list key="text" as |item|}}{{item.text}}{{/each}}`);
620
-
621
- this.assertText('Hello world');
622
-
623
- this.assertStableRerender();
624
-
625
- let oldSnapshot = this.takeSnapshot();
626
-
627
- this.runTask(() => {
628
- this.unshiftObject({ text: ', ' });
629
- this.unshiftObject({ text: 'Hi' });
630
- this.pushObject({ text: '!' });
631
- this.pushObject({ text: 'earth' });
632
- });
633
-
634
- this.assertText('Hi, Hello world!earth');
635
-
636
- this.assertPartialInvariants(2, 5);
637
-
638
- this.replaceList([{ text: 'Hello' }, { text: ' ' }, { text: 'world' }]);
639
-
640
- this.assertText('Hello world');
641
-
642
- this.assertInvariants(oldSnapshot, this.takeSnapshot());
643
- }
644
-
645
- [`@test it renders all items with duplicate key values`]() {
646
- this.makeList([{ text: 'Hello' }, { text: 'Hello' }, { text: 'Hello' }]);
647
-
648
- this.render(`{{#each list key="text" as |item|}}{{item.text}}{{/each}}`);
649
-
650
- this.assertText('HelloHelloHello');
651
-
652
- this.runTask(() => {
653
- this.forEach(hash => set(hash, 'text', 'Goodbye'));
654
- });
655
-
656
- this.assertText('GoodbyeGoodbyeGoodbye');
657
-
658
- this.replaceList([{ text: 'Hello' }, { text: 'Hello' }, { text: 'Hello' }]);
659
-
660
- this.assertText('HelloHelloHello');
661
- }
662
-
663
- ['@test context is not changed to the inner scope inside an {{#each as}} block']() {
664
- this.makeList([{ name: 'Chad' }, { name: 'Zack' }, { name: 'Asa' }]);
665
-
666
- this.render(`{{name}}-{{#each list as |person|}}{{name}}{{/each}}-{{name}}`, {
667
- name: 'Joel',
668
- });
669
-
670
- this.assertText('Joel-JoelJoelJoel-Joel');
671
-
672
- this.assertStableRerender();
673
-
674
- this.runTask(() => this.shiftObject());
675
-
676
- this.assertText('Joel-JoelJoel-Joel');
677
-
678
- this.runTask(() => set(this.context, 'name', 'Godfrey'));
679
-
680
- this.assertText('Godfrey-GodfreyGodfrey-Godfrey');
681
-
682
- this.runTask(() => set(this.context, 'name', 'Joel'));
683
- this.replaceList([{ name: 'Chad' }, { name: 'Zack' }, { name: 'Asa' }]);
684
-
685
- this.assertText('Joel-JoelJoelJoel-Joel');
686
- }
687
-
688
- ['@test can access the item and the original scope']() {
689
- this.makeList([{ name: 'Tom Dale' }, { name: 'Yehuda Katz' }, { name: 'Godfrey Chan' }]);
690
-
691
- this.render(`{{#each list key="name" as |person|}}[{{title}}: {{person.name}}]{{/each}}`, {
692
- title: 'Señor Engineer',
693
- });
694
-
695
- this.assertText(
696
- '[Señor Engineer: Tom Dale][Señor Engineer: Yehuda Katz][Señor Engineer: Godfrey Chan]'
697
- );
698
-
699
- this.runTask(() => this.rerender());
700
-
701
- this.assertText(
702
- '[Señor Engineer: Tom Dale][Señor Engineer: Yehuda Katz][Señor Engineer: Godfrey Chan]'
703
- );
704
-
705
- this.runTask(() => {
706
- set(this.objectAt(1), 'name', 'Stefan Penner');
707
- this.removeAt(0);
708
- this.pushObject({ name: 'Tom Dale' });
709
- this.insertAt(1, { name: 'Chad Hietala' });
710
- set(this.context, 'title', 'Principal Engineer');
711
- });
712
-
713
- this.assertText(
714
- '[Principal Engineer: Stefan Penner][Principal Engineer: Chad Hietala][Principal Engineer: Godfrey Chan][Principal Engineer: Tom Dale]'
715
- );
716
-
717
- this.runTask(() => set(this.context, 'title', 'Señor Engineer'));
718
- this.replaceList([{ name: 'Tom Dale' }, { name: 'Yehuda Katz' }, { name: 'Godfrey Chan' }]);
719
-
720
- this.assertText(
721
- '[Señor Engineer: Tom Dale][Señor Engineer: Yehuda Katz][Señor Engineer: Godfrey Chan]'
722
- );
723
- }
724
-
725
- ['@test the scoped variable is not available outside the {{#each}} block.']() {
726
- this.makeList(['Yehuda']);
727
-
728
- this.render(`{{name}}-{{#each list as |name|}}{{name}}{{/each}}-{{name}}`, {
729
- name: 'Stef',
730
- });
731
-
732
- this.assertText('Stef-Yehuda-Stef');
733
-
734
- this.runTask(() => this.rerender());
735
-
736
- this.assertText('Stef-Yehuda-Stef');
737
-
738
- this.runTask(() => this.pushObjects([' ', 'Katz']));
739
-
740
- this.assertText('Stef-Yehuda Katz-Stef');
741
-
742
- this.runTask(() => set(this.context, 'name', 'Tom'));
743
-
744
- this.assertText('Tom-Yehuda Katz-Tom');
745
-
746
- this.runTask(() => set(this.context, 'name', 'Stef'));
747
- this.replaceList(['Yehuda']);
748
-
749
- this.assertText('Stef-Yehuda-Stef');
750
- }
751
-
752
- ['@test inverse template is displayed with context']() {
753
- this.makeList([]);
754
-
755
- this.render(`{{#each list as |thing|}}Has Thing{{else}}No Thing {{otherThing}}{{/each}}`, {
756
- otherThing: 'bar',
757
- });
758
-
759
- this.assertText('No Thing bar');
760
-
761
- this.runTask(() => this.rerender());
762
-
763
- this.assertText('No Thing bar');
764
-
765
- this.runTask(() => set(this.context, 'otherThing', 'biz'));
766
-
767
- this.assertText('No Thing biz');
768
-
769
- this.runTask(() => this.pushObject('non-empty'));
770
-
771
- this.assertText('Has Thing');
772
-
773
- this.runTask(() => set(this.context, 'otherThing', 'baz'));
774
-
775
- this.assertText('Has Thing');
776
-
777
- this.runTask(() => set(this.context, 'otherThing', 'bar'));
778
- this.replaceList([]);
779
-
780
- this.assertText('No Thing bar');
781
- }
782
-
783
- ['@test content that are not initially present updates correctly GH#13983']() {
784
- // The root cause of this bug is that Glimmer did not call `didInitializeChildren`
785
- // on the inserted `TryOpcode`, causing that `TryOpcode` to have an uninitialized
786
- // tag. Currently the only way to observe this the "JUMP-IF-NOT-MODIFIED", i.e. by
787
- // wrapping it in an component.
788
-
789
- this.registerComponent('x-wrapper', { template: '{{yield}}' });
790
-
791
- this.makeList([]);
792
-
793
- this.render(`{{#x-wrapper}}{{#each list as |obj|}}[{{obj.text}}]{{/each}}{{/x-wrapper}}`);
794
-
795
- this.assertText('');
796
-
797
- this.runTask(() => this.rerender());
798
-
799
- this.assertText('');
800
-
801
- this.runTask(() => this.pushObject({ text: 'foo' }));
802
-
803
- this.assertText('[foo]');
804
-
805
- this.runTask(() => set(this.objectAt(0), 'text', 'FOO'));
806
-
807
- this.assertText('[FOO]');
808
-
809
- this.runTask(() => this.pushObject({ text: 'bar' }));
810
-
811
- this.assertText('[FOO][bar]');
812
-
813
- this.runTask(() => set(this.objectAt(1), 'text', 'BAR'));
814
-
815
- this.assertText('[FOO][BAR]');
816
-
817
- this.runTask(() => set(this.objectAt(1), 'text', 'baz'));
818
-
819
- this.assertText('[FOO][baz]');
820
-
821
- this.runTask(() => this.replace(1, 1, [{ text: 'BAZ' }]));
822
-
823
- this.assertText('[FOO][BAZ]');
824
-
825
- this.replaceList([]);
826
-
827
- this.assertText('');
828
- }
829
-
830
- ['@test empty trusted content clears properly [GH#16314]']() {
831
- this.makeList(['hello']);
832
-
833
- this.render(`before {{#each list as |value|}}{{{value}}}{{/each}} after`);
834
-
835
- this.assertText('before hello after');
836
-
837
- this.assertStableRerender();
838
-
839
- this.runTask(() => this.pushObjects([null, ' world']));
840
-
841
- this.assertText('before hello world after');
842
-
843
- this.runTask(() => this.replace(1, 2, [undefined, ' world!']));
844
-
845
- this.assertText('before hello world! after');
846
-
847
- this.runTask(() => this.replace(1, 2, [htmlSafe(''), ' world!!']));
848
-
849
- this.assertText('before hello world!! after');
850
-
851
- this.replaceList(['hello']);
852
-
853
- this.assertText('before hello after');
854
- }
855
-
856
- /* multi each */
857
-
858
- ['@test re-using the same variable with different {{#each}} blocks does not override each other']() {
859
- let admins = this.createList([{ name: 'Tom Dale' }]);
860
- let users = this.createList([{ name: 'Yehuda Katz' }]);
861
-
862
- this.render(
863
- `Admin: {{#each admins key="name" as |person|}}[{{person.name}}]{{/each}} User: {{#each users key="name" as |person|}}[{{person.name}}]{{/each}}`,
864
- {
865
- admins: admins.list,
866
- users: users.list,
867
- }
868
- );
869
-
870
- this.assertText('Admin: [Tom Dale] User: [Yehuda Katz]');
871
-
872
- this.runTask(() => this.rerender());
873
-
874
- this.assertText('Admin: [Tom Dale] User: [Yehuda Katz]');
875
-
876
- this.runTask(() => {
877
- admins.delegate.pushObject({ name: 'Godfrey Chan' });
878
- set(users.delegate.objectAt(0), 'name', 'Stefan Penner');
879
- });
880
-
881
- this.assertText('Admin: [Tom Dale][Godfrey Chan] User: [Stefan Penner]');
882
-
883
- this.runTask(() => {
884
- set(this.context, 'admins', this.createList([{ name: 'Tom Dale' }]).list);
885
- set(this.context, 'users', this.createList([{ name: 'Yehuda Katz' }]).list);
886
- });
887
-
888
- this.assertText('Admin: [Tom Dale] User: [Yehuda Katz]');
889
- }
890
-
891
- [`@test an outer {{#each}}'s scoped variable does not clobber an inner {{#each}}'s property if they share the same name - Issue #1315`]() {
892
- let content = this.createList(['X', 'Y']);
893
- let options = this.createList([{ label: 'One', value: 1 }, { label: 'Two', value: 2 }]);
894
-
895
- this.render(
896
- strip`
897
- {{#each content as |value|}}
898
- {{value}}-
899
- {{#each options as |option|}}
900
- {{option.value}}:{{option.label}}
901
- {{/each}}
902
- {{/each}}
903
- `,
904
- {
905
- content: content.list,
906
- options: options.list,
907
- }
908
- );
909
-
910
- this.assertText('X-1:One2:TwoY-1:One2:Two');
911
-
912
- this.assertStableRerender();
913
-
914
- this.runTask(() => {
915
- content.delegate.pushObject('Z');
916
- set(options.delegate.objectAt(0), 'value', 0);
917
- });
918
-
919
- this.assertText('X-0:One2:TwoY-0:One2:TwoZ-0:One2:Two');
920
-
921
- this.runTask(() => {
922
- set(this.context, 'content', this.createList(['X', 'Y']).list);
923
- set(
924
- this.context,
925
- 'options',
926
- this.createList([{ label: 'One', value: 1 }, { label: 'Two', value: 2 }]).list
927
- );
928
- });
929
-
930
- this.assertText('X-1:One2:TwoY-1:One2:Two');
931
- }
932
-
933
- ['@test the scoped variable is not available outside the {{#each}} block']() {
934
- let first = this.createList(['Limbo']);
935
- let fifth = this.createList(['Wrath']);
936
- let ninth = this.createList(['Treachery']);
937
-
938
- this.render(
939
- `{{ring}}-{{#each first as |ring|}}{{ring}}-{{#each fifth as |ring|}}{{ring}}-{{#each ninth as |ring|}}{{ring}}-{{/each}}{{ring}}-{{/each}}{{ring}}-{{/each}}{{ring}}`,
940
- {
941
- ring: 'Greed',
942
- first: first.list,
943
- fifth: fifth.list,
944
- ninth: ninth.list,
945
- }
946
- );
947
-
948
- this.assertText('Greed-Limbo-Wrath-Treachery-Wrath-Limbo-Greed');
949
-
950
- this.runTask(() => this.rerender());
951
-
952
- this.assertText('Greed-Limbo-Wrath-Treachery-Wrath-Limbo-Greed');
953
-
954
- this.runTask(() => {
955
- set(this.context, 'ring', 'O');
956
- fifth.delegate.insertAt(0, 'D');
957
- });
958
-
959
- this.assertText('O-Limbo-D-Treachery-D-Wrath-Treachery-Wrath-Limbo-O');
960
-
961
- this.runTask(() => {
962
- first.delegate.pushObject('I');
963
- ninth.delegate.replace(0, 1, ['K']);
964
- });
965
-
966
- this.assertText('O-Limbo-D-K-D-Wrath-K-Wrath-Limbo-I-D-K-D-Wrath-K-Wrath-I-O');
967
-
968
- this.runTask(() => {
969
- set(this.context, 'ring', 'Greed');
970
- set(this.context, 'first', this.createList(['Limbo']).list);
971
- set(this.context, 'fifth', this.createList(['Wrath']).list);
972
- set(this.context, 'ninth', this.createList(['Treachery']).list);
973
- });
974
-
975
- this.assertText('Greed-Limbo-Wrath-Treachery-Wrath-Limbo-Greed');
976
- }
977
-
978
- ['@test it should support {{#each name as |foo|}}, then {{#each foo as |bar|}}']() {
979
- let inner = this.createList(['caterpillar']);
980
- let outer = this.createList([inner.list]);
981
-
982
- this.render(
983
- `{{#each name key="@index" as |foo|}}{{#each foo as |bar|}}{{bar}}{{/each}}{{/each}}`,
984
- {
985
- name: outer.list,
986
- }
987
- );
988
-
989
- this.assertText('caterpillar');
990
-
991
- this.runTask(() => this.rerender());
992
-
993
- this.assertText('caterpillar');
994
-
995
- this.runTask(() => {
996
- inner.delegate.replace(0, 1, ['lady']);
997
- outer.delegate.pushObject(this.createList(['bird']).list);
998
- });
999
-
1000
- this.assertText('ladybird');
1001
-
1002
- this.runTask(() =>
1003
- set(this.context, 'name', this.createList([this.createList(['caterpillar']).list]).list)
1004
- );
1005
-
1006
- this.assertText('caterpillar');
1007
- }
1008
- }
1009
-
1010
- moduleFor(
1011
- 'Syntax test: {{#each}} with native arrays',
1012
- class extends EachTest {
1013
- createList(items) {
1014
- return { list: items, delegate: new ArrayDelegate(items, items) };
1015
- }
1016
- }
1017
- );
1018
-
1019
- moduleFor(
1020
- 'Syntax test: {{#each}} with emberA-wrapped arrays',
1021
- class extends EachTest {
1022
- createList(items) {
1023
- let wrapped = emberA(items);
1024
- return { list: wrapped, delegate: wrapped };
1025
- }
1026
- }
1027
- );
1028
-
1029
- moduleFor(
1030
- 'Syntax test: {{#each}} with native Set',
1031
- class extends EachTest {
1032
- createList(items) {
1033
- let set = makeSet(items);
1034
- return { list: set, delegate: new SetDelegate(set) };
1035
- }
1036
-
1037
- ['@test it can render duplicate primitive items'](assert) {
1038
- assert.ok(true, 'not supported by Set');
1039
- }
1040
-
1041
- ['@test it can render duplicate objects'](assert) {
1042
- assert.ok(true, 'not supported by Set');
1043
- }
1044
- }
1045
- );
1046
-
1047
- moduleFor(
1048
- 'Syntax test: {{#each}} with array-like objects implementing forEach',
1049
- class extends EachTest {
1050
- createList(items) {
1051
- let forEachable = new ForEachable(items);
1052
- return { list: forEachable, delegate: forEachable };
1053
- }
1054
- }
1055
- );
1056
-
1057
- if (HAS_NATIVE_SYMBOL) {
1058
- moduleFor(
1059
- 'Syntax test: {{#each}} with array-like objects implementing Symbol.iterator',
1060
- class extends EachTest {
1061
- createList(items) {
1062
- let iterable = new ArrayIterable(items);
1063
- return { list: iterable, delegate: iterable };
1064
- }
1065
- }
1066
- );
1067
- }
1068
-
1069
- moduleFor(
1070
- 'Syntax test: {{#each}} with array proxies, modifying itself',
1071
- class extends EachTest {
1072
- createList(items) {
1073
- let proxty = ArrayProxy.create({ content: emberA(items) });
1074
- return { list: proxty, delegate: proxty };
1075
- }
1076
- }
1077
- );
1078
-
1079
- moduleFor(
1080
- 'Syntax test: {{#each}} with array proxies, replacing its content',
1081
- class extends EachTest {
1082
- createList(items) {
1083
- let wrapped = emberA(items);
1084
- return {
1085
- list: wrapped,
1086
- delegate: ArrayProxy.create({ content: wrapped }),
1087
- };
1088
- }
1089
- }
1090
- );
1091
-
1092
- moduleFor(
1093
- 'Syntax test: {{#each as}} undefined path',
1094
- class extends RenderingTest {
1095
- ['@test keying off of `undefined` does not render']() {
1096
- this.render(
1097
- strip`
1098
- {{#each foo.bar.baz as |thing|}}
1099
- {{thing}}
1100
- {{/each}}`,
1101
- { foo: {} }
1102
- );
1103
-
1104
- this.assertText('');
1105
-
1106
- this.runTask(() => this.rerender());
1107
-
1108
- this.assertText('');
1109
-
1110
- this.runTask(() => set(this.context, 'foo', { bar: { baz: ['Here!'] } }));
1111
-
1112
- this.assertText('Here!');
1113
-
1114
- this.runTask(() => set(this.context, 'foo', {}));
1115
-
1116
- this.assertText('');
1117
- }
1118
- }
1119
- );
1120
-
1121
- moduleFor(
1122
- 'Syntax test: {{#each}} with sparse arrays',
1123
- class extends RenderingTest {
1124
- ['@test it should itterate over holes']() {
1125
- let sparseArray = [];
1126
- sparseArray[3] = 'foo';
1127
- sparseArray[4] = 'bar';
1128
-
1129
- this.render(
1130
- strip`
1131
- {{#each list as |value key|}}
1132
- [{{key}}:{{value}}]
1133
- {{/each}}`,
1134
- { list: emberA(sparseArray) }
1135
- );
1136
-
1137
- this.assertText('[0:][1:][2:][3:foo][4:bar]');
1138
-
1139
- this.assertStableRerender();
1140
-
1141
- this.runTask(() => {
1142
- let list = get(this.context, 'list');
1143
- list.pushObject('baz');
1144
- });
1145
-
1146
- this.assertText('[0:][1:][2:][3:foo][4:bar][5:baz]');
1147
- }
1148
- }
1149
- );
1150
-
1151
- /* globals MutationObserver: false */
1152
- if (typeof MutationObserver === 'function') {
1153
- moduleFor(
1154
- 'Syntax test: {{#each as}} DOM mutation test',
1155
- class extends RenderingTest {
1156
- constructor() {
1157
- super(...arguments);
1158
- this.observer = null;
1159
- }
1160
-
1161
- observe(element) {
1162
- let observer = (this.observer = new MutationObserver(function() {}));
1163
- observer.observe(element, { childList: true, characterData: true });
1164
- }
1165
-
1166
- teardown() {
1167
- if (this.observer) {
1168
- this.observer.disconnect();
1169
- }
1170
-
1171
- super.teardown();
1172
- }
1173
-
1174
- assertNoMutation() {
1175
- this.assert.deepEqual(this.observer.takeRecords(), [], 'Expected no mutations');
1176
- }
1177
-
1178
- expectMutations() {
1179
- this.assert.ok(this.observer.takeRecords().length > 0, 'Expected some mutations');
1180
- }
1181
-
1182
- ['@test {{#each}} should not mutate a subtree when the array has not changed [GH #14332]']() {
1183
- let page = { title: 'Blog Posts' };
1184
-
1185
- let model = [{ title: 'Rails is omakase' }, { title: 'Ember is omakase' }];
1186
-
1187
- this.render(
1188
- strip`
1189
- <h1>{{page.title}}</h1>
1190
-
1191
- <ul id="posts">
1192
- {{#each model as |post|}}
1193
- <li>{{post.title}}</li>
1194
- {{/each}}
1195
- </ul>
1196
- `,
1197
- { page, model }
1198
- );
1199
-
1200
- this.assertHTML(strip`
1201
- <h1>Blog Posts</h1>
1202
-
1203
- <ul id="posts">
1204
- <li>Rails is omakase</li>
1205
- <li>Ember is omakase</li>
1206
- </ul>
1207
- `);
1208
-
1209
- this.observe(this.$('#posts')[0]);
1210
-
1211
- // MutationObserver is async
1212
- return RSVP.Promise.resolve(() => {
1213
- this.assertStableRerender();
1214
- })
1215
- .then(() => {
1216
- this.assertNoMutation();
1217
-
1218
- this.runTask(() => set(this.context, 'page', { title: 'Essays' }));
1219
-
1220
- this.assertHTML(strip`
1221
- <h1>Essays</h1>
1222
-
1223
- <ul id="posts">
1224
- <li>Rails is omakase</li>
1225
- <li>Ember is omakase</li>
1226
- </ul>
1227
- `);
1228
- })
1229
- .then(() => {
1230
- this.assertNoMutation();
1231
-
1232
- this.runTask(() => set(this.context.page, 'title', 'Think Pieces™'));
1233
-
1234
- this.assertHTML(strip`
1235
- <h1>Think Pieces™</h1>
1236
-
1237
- <ul id="posts">
1238
- <li>Rails is omakase</li>
1239
- <li>Ember is omakase</li>
1240
- </ul>
1241
- `);
1242
- })
1243
- .then(() => {
1244
- // The last set is localized to the `page` object, so we do not expect Glimmer
1245
- // to re-iterate the list
1246
- this.assertNoMutation();
1247
- });
1248
- }
1249
- }
1250
- );
1251
- }