Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Glimmer Engine #10501

Merged
merged 321 commits into from
May 5, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
321 commits
Select commit Hold shift + click to select a range
22c7c6a
Made more {{#view}} tests pass
Mar 19, 2015
b504a00
Attrs, scope and view destruction cleanup
Mar 19, 2015
907910f
Take machete to inBuffer state
Mar 20, 2015
d65c7cb
Implement {{collection}} helper
Mar 20, 2015
f39428f
Unpend passing collection tests
Mar 20, 2015
f9bb21a
Helper for finding pending tests that now pass
Mar 20, 2015
ef9d51e
Got 75 more tests passing in ember-htmlbars
wycats Mar 21, 2015
4d2e775
Left off a bunch of new files
wycats Mar 21, 2015
c7ab85c
Get more tests passing
wycats Mar 21, 2015
3e61a6a
Fix style errors
mmun Mar 28, 2015
0346b9b
Mark 3 regressions as skipped
mmun Mar 28, 2015
72bbc6f
Get more tests passing
wycats Mar 22, 2015
9ba35a6
Get action keyword mostly working
mmun Mar 28, 2015
f23f4cd
Bump htmlbars version
mmun Mar 29, 2015
f6640d7
Update HTMLBars to v0.12.0.
rwjblue Mar 30, 2015
2dd0093
Fix rebase conflicts and get tests passing
Mar 30, 2015
a1bff06
Drop tests for removed isVirtual behaviors
mixonic Apr 2, 2015
df2e6a9
Reenable tests related to undefined/null attr values
mixonic Apr 2, 2015
6d171bb
Port getViewClientRects, getViewboundingClientRect to Glimmer
mixonic Apr 1, 2015
992f4af
Rerender {{with}} when param changes
Apr 2, 2015
19cd545
Always set shadowScope’s `view` property
Apr 2, 2015
bfa40e2
Fix yield in nested views
Apr 3, 2015
34e28a2
Use `isStream` helper to check for streamness.
rwjblue Apr 6, 2015
7cc0894
Prevent errors in updateScope hook when view is null.
rwjblue Apr 6, 2015
a3b9668
Ensure Ember.Handlebars.makeBoundHelper helpers get `options.data.pro…
rwjblue Apr 6, 2015
e1fb347
Get render keyword mostly working
mmun Apr 6, 2015
8da40d9
Throw an assertion if `makeBoundHelper` is provided a block.
rwjblue Apr 6, 2015
edcb457
Allow Handlebars compat helpers to specify additional dep keys.
rwjblue Apr 6, 2015
878f2cf
Process `fooBinding` in general.
rwjblue Apr 6, 2015
5e19bfa
Fix debugger keyword
mmun Apr 6, 2015
7e338d0
Fix expected deprecations for recently fixed tests.
rwjblue Apr 6, 2015
6401464
Update to use new _itemViewTemplate for CollectionView test.
rwjblue Apr 6, 2015
b120eb1
Fix Ember.LinkView export test.
rwjblue Apr 6, 2015
29e6eae
Add `QUnit.skip` to feature flagged tests.
rwjblue Apr 7, 2015
c868b10
Use `expectAssertion` for testing Ember.assert.
rwjblue Apr 7, 2015
3648872
Get node tests running.
rwjblue Apr 7, 2015
5669af5
Remove unused import.
rwjblue Apr 7, 2015
89cf0a9
Enable LOG_VIEW_LOOKUPS for {{outlet}} keyword.
rwjblue Apr 7, 2015
5e1787a
Honor `viewName` property with `{{view}}` helper.
rwjblue Apr 7, 2015
d22789e
Restore Component.prototype.targetObject.
rwjblue Apr 7, 2015
386d8e7
Split out Dependency and Subscriber classes
mmun Mar 12, 2015
f12ae8b
Refactor stream dependencies
mmun Mar 12, 2015
218eab7
Add deactivate hook in Stream, fix KeyStream observers lifecycle
mmun Apr 8, 2015
c8e340b
Make Handlebars compat helpers properly stamp themselves as HTMLBars.
rwjblue Apr 9, 2015
fa9ccb5
Fix expected deprecation for `attributeBindings`.
rwjblue Apr 9, 2015
dbb7dae
Fixing outlets inside {{render}} helper
ef4 Apr 9, 2015
50d54c1
Bump htmlbars to 0.12.1
mmun Apr 9, 2015
826c31f
Bump htmlbars to 0.13.0
mmun Apr 9, 2015
be60dae
Fix {{render}}'s ownerView
ef4 Apr 10, 2015
b857386
Add view._defaultTagName for overriding CollectionView tagName.
rwjblue Apr 11, 2015
5d95e7b
implement textarea keyword
ef4 Apr 12, 2015
51a560a
drop unused argument
ef4 Apr 12, 2015
e01d5df
fix the {{outlet view="foo"}} form
ef4 Apr 12, 2015
a770db3
Updating assertion language
ef4 Apr 12, 2015
2cb9069
drop unused code
ef4 Apr 12, 2015
7487ffb
support {{outlet viewClass=...}}
ef4 Apr 12, 2015
0e90220
fix another outlet view test
ef4 Apr 12, 2015
7936130
fix another outlet assertion
ef4 Apr 12, 2015
2b9d27e
deprecate {{outlet}} view and viewClass params
ef4 Apr 12, 2015
c3ae1ad
Get further on classNameBindings
mitchlloyd Apr 13, 2015
c1ff5b3
fix template context when using a 1.0-style template and controller
ef4 Apr 13, 2015
26438c4
documenting non-obvious code
ef4 Apr 13, 2015
e926e8a
Dropping dead code
ef4 Apr 13, 2015
d13a124
Merge PR #10871 from mitchlloyd/idempotent-rerender
ef4 Apr 13, 2015
31168bb
Merge branch 'master-before-tomhuda' into ir-before-tomhuda
ef4 Apr 14, 2015
ce6c868
prevent test suite explosion due to new AST transform options
ef4 Apr 14, 2015
81d17c5
drop incompatible options.inverse bugfix and leave skipped test
ef4 Apr 14, 2015
1d842b6
porting non-block-param {{#with}} deprecation to idempotent-rerender
ef4 Apr 14, 2015
3ef586a
post-merge cleanup
ef4 Apr 14, 2015
5e52034
skipping tests that don't yet pass on glimmer
ef4 Apr 14, 2015
508d9de
Fix unbound keyword
mmun Apr 13, 2015
36225a2
Add skipped test for compat mode attrs-proxy.
rwjblue Apr 13, 2015
ad7e537
Fix typo in compat mode attrs test.
rwjblue Apr 13, 2015
66acf7f
Update Ember.Select to use HTMLbars templates
tilde-engineering Apr 13, 2015
764a138
Get Ember.Select tests passing
tomdale Apr 14, 2015
0c8c573
Set component props to attrs if defined
tomdale Apr 14, 2015
8728fd1
Fix last textarea test
mmun Apr 14, 2015
c692bd0
Fix current node tests.
rwjblue Apr 15, 2015
6153cd8
Add note on Checkbox inheriting from Component
tilde-engineering Apr 15, 2015
47ddf42
Unify legacy class binding into AST preprocessor
tilde-engineering Apr 15, 2015
8e56b7f
ContainerView should inherit from View
tilde-engineering Apr 15, 2015
2823dd9
Implement collection’s itemClass
tilde-engineering Apr 15, 2015
9efd004
Update HTMLBars to 0.13.1.
rwjblue Apr 16, 2015
b07d55c
Fix spacing between omitted class names
mitchlloyd Apr 16, 2015
9c33444
Wrap `set` in run loop
mitchlloyd Apr 16, 2015
55ece9f
Merge pull request #10886 from mitchlloyd/html-class-spacing
rwjblue Apr 16, 2015
c43cb49
Enable tests that are now passing.
rwjblue Apr 16, 2015
6ff3999
Update link-render-node to handle missing params.
rwjblue Apr 16, 2015
d2a9f02
Fix a couple Ember.Select tests.
rwjblue Apr 16, 2015
188d00c
Fix isVisible on first render
mitchlloyd Apr 16, 2015
9ce2845
dropping dead code: outlets don't use the rerender hook
ef4 Apr 16, 2015
6deadbe
Get isVisible with container tests passing
mitchlloyd Apr 16, 2015
db465ae
Add fix for overwriting style attribute bindings
mitchlloyd Apr 16, 2015
c7f67e8
Fix inverse block in compat helpers
mmun Apr 16, 2015
a180c80
dropping dead code
ef4 Apr 16, 2015
86bdbc6
rely on stable childEnvs to for outletState
ef4 Apr 16, 2015
85ff427
fix use of template & layout together
ef4 Apr 16, 2015
8cde4d3
provide deprecation warning if we fall back to template
ef4 Apr 16, 2015
c056148
Remove invalid test
mmun Apr 16, 2015
7324b93
Merge pull request #10888 from mitchlloyd/is-visible-fixes
rwjblue Apr 16, 2015
55dd117
Add Ember specific AttrMorphClass to provide style warning.
rwjblue Apr 16, 2015
62df0e5
Munge attrs before creating ComponentNode
tilde-engineering Apr 17, 2015
d8a8679
For backwards-compat, make attrs available at init
tilde-engineering Apr 17, 2015
701f11f
Implement custom element hook to allow deprecating legacy unbound hel…
rwjblue Apr 17, 2015
03c1710
Correct assertion messages in tests.
rwjblue Apr 17, 2015
f73264d
Fix a test using an undefined context
mmun Apr 17, 2015
14d15f4
Remove ember-metal-views tests
mmun Apr 17, 2015
7d342b6
Remove unused AttrNode.
rwjblue Apr 17, 2015
7ce75ed
Implement legacy {{each}} features
tilde-engineering Apr 17, 2015
e2ea5f0
WIP on {{each itemController}}
tilde-engineering Apr 18, 2015
e697ef3
Handle legacy View scope better
wycats Apr 11, 2015
6368254
Completely remove the concept of isVirtual
mixonic Apr 18, 2015
44b219c
Merge pull request #10903 from mixonic/idempotent-rerender-no-virtual
rwjblue Apr 18, 2015
f892dc8
Use templates to test View.nearestTypeOf.
mitchlloyd Apr 16, 2015
9d923a6
Add missing -legacy-each registration for deprecated tests.
rwjblue Apr 19, 2015
8a92672
Rewrite some tests to use templates instead of a buffer
mmun Apr 19, 2015
06aab7c
Reimplement hasBlock and hasBlockParams
mmun Apr 19, 2015
011b876
Make createElement work without view entering inDOM state
mixonic Apr 19, 2015
2d3b012
Clean up some lifecycle tests
mixonic Apr 19, 2015
09752c4
Throw when appending and already appended view
mixonic Apr 19, 2015
03b420b
Can presume the view.parentView is not virtual
mixonic Apr 19, 2015
bbc901d
fix tests that don't cleanup Application instances
ef4 Apr 20, 2015
fda7884
drop dead code
ef4 Apr 20, 2015
5c5585d
topmost outlet must ensure its child has a DOM element
ef4 Apr 20, 2015
b325125
fix action targeting when there is no view
ef4 Apr 20, 2015
9ced6d9
this was already passing, not sure when forceskipped didn't find it s…
ef4 Apr 20, 2015
7e489a6
refactor test to avoid buffer.push & appendChild
ef4 Apr 20, 2015
9d7ec1a
Modernize child_views_test
mmun Apr 20, 2015
f11e02a
Use template instead of render buffer
mmun Apr 20, 2015
41648d7
Reimplement willInsertElement
mmun Apr 20, 2015
05ee711
Remove MetamorphView, salvage useful metamorph view tests
mmun Apr 20, 2015
371afb3
Split up render_test.js
mmun Apr 21, 2015
9b1ac59
Update HTMLBars.
rwjblue Apr 21, 2015
37be98e
Update emberjs-build to use esperanto for HTMLBars packages.
rwjblue Apr 21, 2015
1404ce4
Update assertions to show NullLiteral type works properly.
rwjblue Apr 21, 2015
54ed612
Get more tests with view#remove working
mitchlloyd Apr 21, 2015
1f24be6
Cancel scheduled view#append on view#remove
mitchlloyd Apr 22, 2015
32d625b
Destroy ember views in destroy-render-node hook
mitchlloyd Apr 22, 2015
4a072bc
Merge pull request #10924 from mitchlloyd/view-remove-fixes
mmun Apr 23, 2015
a79c586
Tweak childNodes to fix test
mixonic Apr 26, 2015
4181cc9
Remove unnnecessary test
mixonic Apr 26, 2015
96895af
Revert incorrectly bumped htmlbars in a79c5868
mixonic Apr 26, 2015
97fa5ea
Use unbound to assert dom rerender
mixonic Apr 26, 2015
c278ff5
Allow attr names with `:` in attributeBindings
mitchlloyd Apr 26, 2015
e5d76ee
Add assertion on 'class' for attributeBindings
mitchlloyd Apr 26, 2015
f224f28
Update number of observers in test
mitchlloyd Apr 26, 2015
c4cf0ef
Disallow spaces in classNameBindings property
mitchlloyd Apr 26, 2015
d739bd0
Merge pull request #10957 from mitchlloyd/view-attr-fixes
mixonic Apr 26, 2015
8578ade
Fix layout tests
mixonic Apr 26, 2015
210a47c
Update HTMLBars to 0.13.8.
rwjblue Apr 26, 2015
10d0861
Update template_test to use compiled templates
mixonic Apr 26, 2015
32d8584
Port deprecated tests, add test for passing attrs prop to component
mixonic Apr 26, 2015
af75b40
Fix arguments to handlebars compat helpers, and render return values
mixonic Apr 27, 2015
ba5f1cf
Add back assertion for tagless components
mitchlloyd Apr 27, 2015
f9a192a
Merge pull request #10960 from mitchlloyd/tagless-assertion
rwjblue Apr 27, 2015
97c1039
Get remainder of query_params_test.js passing
machty Apr 28, 2015
b162d69
Merge pull request #10969 from machty/ir-qp
rwjblue Apr 28, 2015
af5c3ea
Only proxy through dependencies when necessary, and make it painfully…
mmun Apr 28, 2015
82b6968
Refactor SubexprStream
mmun Apr 28, 2015
af36378
Differentiate between mutable and immutable dependencies
mmun Apr 28, 2015
4df3894
Rename SimpleStream to ProxyStream
mmun Apr 28, 2015
d31876a
Resolve master merge conflicts
tilde-engineering Apr 28, 2015
a3f96a8
Merge branch 'idempotent-rerender' of http://github.com/emberjs/ember…
tilde-engineering Apr 28, 2015
afa1199
Merge branch 'master' into idempotent-rerender
tilde-engineering Apr 28, 2015
f74f109
publish glimmer builds to bower
Apr 28, 2015
967fd42
Initial incomplete impl of mut bindings
wycats Apr 29, 2015
6d43084
Throw when rerender called after rendering
mixonic Apr 26, 2015
79c06f1
Support re-rendering inside lifecycle hooks
tomdale Apr 29, 2015
9d0b5a4
Bump htmlbars version
tomdale Apr 29, 2015
ab20172
Unskip some link-to tests
tomdale Apr 29, 2015
f68ceeb
Add support for intercepting get and set
wycats Apr 29, 2015
60dc11f
Assert when calling view helpers with params
tomdale Apr 29, 2015
f0ca068
Fix incomplete query params support in LinkView
tomdale Apr 29, 2015
c8dfd40
Fix preventDefault on link-to
mmun Apr 29, 2015
d3ce978
Recover willCreateElement hook to support instrumentation
mmun Apr 29, 2015
8732970
Fix controller usage in {{action}} and sendAction
mmun Apr 30, 2015
2b5a6dc
Bump emberjs-build to 0.1.1
mmun Apr 30, 2015
5e371c0
Merge branch 'master' into idempotent-rerender
krisselden Apr 30, 2015
6af18a0
Merge pull request #10990 from krisselden/idempotent-rerender
rwjblue Apr 30, 2015
53e6eba
Fix lint errors.
rwjblue Apr 30, 2015
a2d9a41
Fix incorrect `typeOf` import.
rwjblue Apr 30, 2015
ccc13a6
Set controller inside {{#each arrayController}}
tomdale Apr 30, 2015
b9eb523
Refactor controller binding
tomdale Apr 30, 2015
dc97966
Preserve controller instance across rerenders
tilde-engineering Apr 30, 2015
85cda2e
Allow {{with}} to bind controller
tilde-engineering Apr 30, 2015
9c9c45c
Make proper test for makeViewHelper being looked up lazily from conta…
rwjblue Apr 27, 2015
cb5f07c
Add integration test for makeViewHelper looked up from the container.
rwjblue May 1, 2015
28f04c6
Mostly complete impl of mutable bindings
wycats May 1, 2015
e922169
Don't leak the stream into user code
wycats May 1, 2015
ce28b3c
Notify view controller when its parentView changes
mitchlloyd Apr 30, 2015
d5fe775
Consistently use `parentView` over `_parentView`
mitchlloyd May 1, 2015
3ba81e3
Merge pull request #10999 from mitchlloyd/fix-create-child-view-tests
rwjblue May 1, 2015
5725b5c
Merge pull request #10991 from mitchlloyd/view-computed-controller
rwjblue May 1, 2015
5a1c5e1
Fallback to "-text-field" component name for unrecognized input type
bantic May 1, 2015
505ec73
Merge pull request #11004 from bantic/idempotent-rerender-fix-input-t…
wycats May 1, 2015
cd81304
Use attrs by default and fallback to root properties in TextSupport.
rwjblue May 2, 2015
7f0d4ed
Use modern template in ember-testing integration tests.
rwjblue May 2, 2015
4507947
Always set `elementId`.
rwjblue May 2, 2015
2b0404b
Update remaining skipped `View.prototype.createElement`.
rwjblue May 2, 2015
ea44afb
Prevent clobbering attrs with an attr named attrs.
rwjblue May 2, 2015
5700eee
Merge pull request #10958 from mixonic/idempotent-rerender-assert-rer…
wycats May 2, 2015
9aaa8eb
Use `indexOf` from EnumerableUtils.
rwjblue May 2, 2015
3e66244
Add failing controller scope/action test
tilde-engineering May 2, 2015
3493fdc
Rename componentNode -> manager
tilde-engineering May 2, 2015
ed43856
Extract simplified ComponentNodeManager
tomdale May 2, 2015
ac680f4
Extract lookupComponent
tomdale May 2, 2015
a4dffa9
Make streams aware of proxies
mmun May 2, 2015
c340bab
Merge branch 'master' into idempotent-rerender
krisselden May 2, 2015
a3d4eba
Merge pull request #11008 from krisselden/idempotent-rerender
rwjblue May 2, 2015
8e82692
Style cleanup to fix tests
mixonic May 2, 2015
4e585da
Fix issue with inputs getting re-rendered
wycats May 3, 2015
18bf2f3
Bump HTMLBars version to 0.13.10.
rwjblue May 3, 2015
c0df0cd
Fix failed teardown in `View.prototype.appendTo` tests.
rwjblue May 3, 2015
b12adfb
Fixes input getting re-rendered incorrectly
wycats May 3, 2015
918f69d
Adds a way to reliably read from DOM
wycats May 3, 2015
a805745
Use readDOMAttr + attributeBinding for <textarea>.
rwjblue May 3, 2015
0e674a4
Update HTMLBars to v0.13.11.
rwjblue May 3, 2015
2d501df
Remove unused imports in Ember.TextArea.
rwjblue May 3, 2015
c762400
Merge pull request #10977 from fivetanley/bower-idemptotent-rerender
rwjblue May 3, 2015
57f05da
Fix dynamic `makeViewHelper`.
rwjblue May 3, 2015
73881e4
Fix dynamic `makeViewHelper`.
rwjblue May 3, 2015
4189eb0
Set outlet state prior to rendering {{outlet}} in tests.
rwjblue May 3, 2015
d1da840
Fix stream teardown... I think
mmun May 3, 2015
de821af
Bring back the render hook with a pushable buffer
mixonic May 3, 2015
86ecba9
Merge pull request #11012 from mixonic/idempotent-rerender-buffer
mixonic May 3, 2015
5a33e9c
Propagate controller keyword for outlets
tilde-engineering May 3, 2015
658f260
Drop old render_buffer file in favor of compat/ file
mixonic May 4, 2015
42b5df0
Skipped test for values propagating upstream via templates
mixonic May 4, 2015
4f46a23
Fix {{#each}} with itemController in outlet
tilde-engineering May 4, 2015
4cfb2bd
Fix controller local w/ `{{#each itemController}}`
tilde-engineering May 4, 2015
6795e0b
Make JSCS happy.
rwjblue May 4, 2015
5d38b79
Add a (passing?) test for settable upstreaming template bindings
mixonic May 4, 2015
a4f9da4
Fix propagation test.
rwjblue May 4, 2015
b010313
Remove deprecation on accessing `attrs` in component root.
rwjblue May 4, 2015
0672868
Add skipped test showing issue with mutable binding system.
rwjblue May 4, 2015
807a0cd
Don't warn when for-compat stream is not a path
wycats May 4, 2015
27a6c57
Intercept property changes instead of sets
mmun May 4, 2015
d9e5c80
Unskip mutable binding test.
rwjblue May 4, 2015
a233059
Publish Glimmer builds to S3.
rwjblue May 4, 2015
12b2496
Allow publishing of idempotent-rerender PR to S3.
rwjblue May 4, 2015
dddca9a
Bring Ember._Metamorph and Ember._MetamorphView back and deprecate.
rwjblue May 4, 2015
ff82f2e
Revert "Allow publishing of idempotent-rerender PR to S3."
rwjblue May 4, 2015
f81b17d
outlet keywords must pass the template to render as template
mixonic May 5, 2015
5bbfe68
Merge pull request #11022 from mixonic/idempotent-rerender-layout
rwjblue May 5, 2015
535e44b
Fix a memory leak when KeyStream is observering a proxy
mmun May 5, 2015
4d177ca
Remove dead code
mmun May 5, 2015
12cd907
Privatize bind-attr class compat helper
mmun May 5, 2015
820d559
Remove more dead code, relocate docs
mmun May 5, 2015
38a9d86
Add test controller propagation from route driven views.
rwjblue May 5, 2015
691a5b0
Ensure that `controller` is provided for route backed views.
rwjblue May 5, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"Ember",
"DS",
"Handlebars",
"Metamorph",
"RSVP",
"require",
"requireModule",
Expand Down
2 changes: 2 additions & 0 deletions bin/bower_ember_build
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ case $TRAVIS_BRANCH in
CHANNEL="release" ;;
"metal-views" )
CHANNEL="metal-views" ;;
"idempotent-rerender" )
CHANNEL="glimmer" ;;
* )
echo "Not a bower release branch. Exiting!"
exit 0 ;;
Expand Down
4 changes: 4 additions & 0 deletions config/s3ProjectConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ function fileObject(baseName, extension, contentType, currentRevision, tag, date
var obj = {
contentType: contentType,
destinations: {
glimmer: [
"glimmer" + fullName,
"canary/shas/" + currentRevision + fullName
],
canary: [
"latest" + fullName,
"canary" + fullName,
Expand Down
4 changes: 2 additions & 2 deletions lib/packages.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ module.exports = {
'ember-views': {trees: null, requirements: ['ember-runtime', 'ember-metal-views']},
'ember-extension-support': {trees: null, requirements: ['ember-application']},
'ember-testing': {trees: null, requirements: ['ember-application', 'ember-routing'], testing: true},
'ember-template-compiler': {trees: null, templateCompilerVendor: ['simple-html-tokenizer', 'htmlbars-runtime', 'htmlbars-util', 'htmlbars-compiler', 'htmlbars-syntax', 'htmlbars-test-helpers']},
'ember-htmlbars': {trees: null, vendorRequirements: ['htmlbars-util'], requirements: ['ember-metal-views'], testingVendorRequirements: [ 'htmlbars-test-helpers'], hasTemplates: true},
'ember-template-compiler': {trees: null, vendorRequirements: ['htmlbars-runtime'], templateCompilerVendor: ['simple-html-tokenizer', 'morph-range', 'htmlbars-runtime', 'htmlbars-util', 'htmlbars-compiler', 'htmlbars-syntax', 'htmlbars-test-helpers']},
'ember-htmlbars': {trees: null, vendorRequirements: ['htmlbars-util', 'htmlbars-runtime'], requirements: ['ember-metal-views'], testingVendorRequirements: [ 'htmlbars-test-helpers'], hasTemplates: true},
'ember-routing': {trees: null, vendorRequirements: ['router', 'route-recognizer'],
requirements: ['ember-runtime', 'ember-views']},
'ember-routing-htmlbars': {trees: null, requirements: ['ember-routing', 'ember-htmlbars']},
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"ember-cli-sauce": "^1.0.0",
"ember-cli-yuidoc": "^0.4.0",
"ember-publisher": "0.0.7",
"emberjs-build": "0.0.47",
"emberjs-build": "0.1.1",
"express": "^4.5.0",
"github": "^0.2.3",
"glob": "~4.3.2",
"htmlbars": "0.11.3",
"htmlbars": "0.13.12",
"qunit-extras": "^1.3.0",
"qunitjs": "^1.16.0",
"route-recognizer": "0.1.5",
Expand Down
11 changes: 10 additions & 1 deletion packages/container/lib/registry.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ function Registry(options) {

this._normalizeCache = dictionary(null);
this._resolveCache = dictionary(null);
this._failCache = dictionary(null);

this._options = dictionary(null);
this._typeOptions = dictionary(null);
Expand Down Expand Up @@ -225,6 +226,7 @@ Registry.prototype = {
throw new Error('Cannot re-register: `' + fullName +'`, as it has already been resolved.');
}

delete this._failCache[normalizedName];
this.registrations[normalizedName] = factory;
this._options[normalizedName] = (options || {});
},
Expand Down Expand Up @@ -252,6 +254,7 @@ Registry.prototype = {

delete this.registrations[normalizedName];
delete this._resolveCache[normalizedName];
delete this._failCache[normalizedName];
delete this._options[normalizedName];
},

Expand Down Expand Up @@ -744,9 +747,15 @@ Registry.prototype = {
function resolve(registry, normalizedName) {
var cached = registry._resolveCache[normalizedName];
if (cached) { return cached; }
if (registry._failCache[normalizedName]) { return; }

var resolved = registry.resolver(normalizedName) || registry.registrations[normalizedName];
registry._resolveCache[normalizedName] = resolved;

if (resolved) {
registry._resolveCache[normalizedName] = resolved;
} else {
registry._failCache[normalizedName] = true;
}

return resolved;
}
Expand Down
6 changes: 2 additions & 4 deletions packages/ember-application/lib/system/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ import Controller from "ember-runtime/controllers/controller";
import EnumerableUtils from "ember-metal/enumerable_utils";
import ObjectController from "ember-runtime/controllers/object_controller";
import ArrayController from "ember-runtime/controllers/array_controller";
import Renderer from "ember-views/system/renderer";
import DOMHelper from "dom-helper";
import Renderer from "ember-metal-views/renderer";
import DOMHelper from "ember-htmlbars/system/dom-helper";
import SelectView from "ember-views/views/select";
import { OutletView } from "ember-routing-views/views/outlet";
import EmberView from "ember-views/views/view";
import _MetamorphView from "ember-views/views/metamorph_view";
import EventDispatcher from "ember-views/system/event_dispatcher";
import jQuery from "ember-views/system/jquery";
import Route from "ember-routing/system/route";
Expand Down Expand Up @@ -1016,7 +1015,6 @@ Application.reopenClass({

registry.injection('view', '_viewRegistry', '-view-registry:main');

registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());

registry.register('route:basic', Route, { instantiate: false });
Expand Down
11 changes: 3 additions & 8 deletions packages/ember-application/tests/system/application_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ QUnit.test("you cannot make two default applications without a rootElement error

QUnit.test("acts like a namespace", function() {
var lookup = Ember.lookup = {};
var app;

run(function() {
app = lookup.TestApp = Application.create({ rootElement: '#two', router: false });
Expand Down Expand Up @@ -139,7 +138,7 @@ QUnit.test("initialize application via initialize call", function() {
});

app.ApplicationView = View.extend({
template() { return "<h1>Hello!</h1>"; }
template: compile("<h1>Hello!</h1>")
});
});

Expand All @@ -160,9 +159,7 @@ QUnit.test("initialize application with stateManager via initialize call from Ro
location: 'none'
});

app.register('template:application', function() {
return "<h1>Hello!</h1>";
});
app.register('template:application', compile("<h1>Hello!</h1>"));
});

var router = app.__container__.lookup('router:main');
Expand All @@ -177,9 +174,7 @@ QUnit.test("ApplicationView is inserted into the page", function() {
});

app.ApplicationView = View.extend({
render(buffer) {
buffer.push("<h1>Hello!</h1>");
}
template: compile("<h1>Hello!</h1>")
});

app.ApplicationController = Controller.extend();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ import jQuery from "ember-views/system/jquery";
import run from "ember-metal/run_loop";
import Application from "ember-application/system/application";
import DefaultResolver from "ember-application/system/resolver";
import compile from "ember-template-compiler/system/compile";

var application;

QUnit.module("Ember.Application Dependency Injection – customResolver", {
setup() {
function fallbackTemplate() { return "<h1>Fallback</h1>"; }
var fallbackTemplate = compile("<h1>Fallback</h1>");

var Resolver = DefaultResolver.extend({
resolveTemplate(resolvable) {
Expand Down
18 changes: 14 additions & 4 deletions packages/ember-application/tests/system/initializers_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ QUnit.test("initializers set on Application subclasses should not be shared betw
var firstInitializerRunCount = 0;
var secondInitializerRunCount = 0;
var FirstApp = Application.extend();
var firstApp, secondApp;
FirstApp.initializer({
name: 'first',
initialize(registry) {
Expand All @@ -252,27 +253,32 @@ QUnit.test("initializers set on Application subclasses should not be shared betw
});
jQuery('#qunit-fixture').html('<div id="first"></div><div id="second"></div>');
run(function() {
FirstApp.create({
firstApp = FirstApp.create({
router: false,
rootElement: '#qunit-fixture #first'
});
});
equal(firstInitializerRunCount, 1, 'first initializer only was run');
equal(secondInitializerRunCount, 0, 'first initializer only was run');
run(function() {
SecondApp.create({
secondApp = SecondApp.create({
router: false,
rootElement: '#qunit-fixture #second'
});
});
equal(firstInitializerRunCount, 1, 'second initializer only was run');
equal(secondInitializerRunCount, 1, 'second initializer only was run');
run(function() {
firstApp.destroy();
secondApp.destroy();
});
});

QUnit.test("initializers are concatenated", function() {
var firstInitializerRunCount = 0;
var secondInitializerRunCount = 0;
var FirstApp = Application.extend();
var firstApp, secondApp;
FirstApp.initializer({
name: 'first',
initialize(registry) {
Expand All @@ -290,7 +296,7 @@ QUnit.test("initializers are concatenated", function() {

jQuery('#qunit-fixture').html('<div id="first"></div><div id="second"></div>');
run(function() {
FirstApp.create({
firstApp = FirstApp.create({
router: false,
rootElement: '#qunit-fixture #first'
});
Expand All @@ -299,13 +305,17 @@ QUnit.test("initializers are concatenated", function() {
equal(secondInitializerRunCount, 0, 'first initializer only was run when base class created');
firstInitializerRunCount = 0;
run(function() {
SecondApp.create({
secondApp = SecondApp.create({
router: false,
rootElement: '#qunit-fixture #second'
});
});
equal(firstInitializerRunCount, 1, 'first initializer was run when subclass created');
equal(secondInitializerRunCount, 1, 'second initializers was run when subclass created');
run(function() {
firstApp.destroy();
secondApp.destroy();
});
});

QUnit.test("initializers are per-app", function() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,8 @@ if (Ember.FEATURES.isEnabled('ember-application-instance-initializers')) {
var firstInitializerRunCount = 0;
var secondInitializerRunCount = 0;
var FirstApp = Application.extend();
var firstApp, secondApp;

FirstApp.instanceInitializer({
name: 'first',
initialize(registry) {
Expand All @@ -256,27 +258,34 @@ if (Ember.FEATURES.isEnabled('ember-application-instance-initializers')) {
});
jQuery('#qunit-fixture').html('<div id="first"></div><div id="second"></div>');
run(function() {
FirstApp.create({
firstApp = FirstApp.create({
router: false,
rootElement: '#qunit-fixture #first'
});
});
equal(firstInitializerRunCount, 1, 'first initializer only was run');
equal(secondInitializerRunCount, 0, 'first initializer only was run');
run(function() {
SecondApp.create({
secondApp = SecondApp.create({
router: false,
rootElement: '#qunit-fixture #second'
});
});
equal(firstInitializerRunCount, 1, 'second initializer only was run');
equal(secondInitializerRunCount, 1, 'second initializer only was run');
run(function() {
firstApp.destroy();
secondApp.destroy();
});

});

QUnit.test("initializers are concatenated", function() {
var firstInitializerRunCount = 0;
var secondInitializerRunCount = 0;
var FirstApp = Application.extend();
var firstApp, secondApp;

FirstApp.instanceInitializer({
name: 'first',
initialize(registry) {
Expand All @@ -294,7 +303,7 @@ if (Ember.FEATURES.isEnabled('ember-application-instance-initializers')) {

jQuery('#qunit-fixture').html('<div id="first"></div><div id="second"></div>');
run(function() {
FirstApp.create({
firstApp = FirstApp.create({
router: false,
rootElement: '#qunit-fixture #first'
});
Expand All @@ -303,13 +312,17 @@ if (Ember.FEATURES.isEnabled('ember-application-instance-initializers')) {
equal(secondInitializerRunCount, 0, 'first initializer only was run when base class created');
firstInitializerRunCount = 0;
run(function() {
SecondApp.create({
secondApp = SecondApp.create({
router: false,
rootElement: '#qunit-fixture #second'
});
});
equal(firstInitializerRunCount, 1, 'first initializer was run when subclass created');
equal(secondInitializerRunCount, 1, 'second initializers was run when subclass created');
run(function() {
firstApp.destroy();
secondApp.destroy();
});
});

QUnit.test("initializers are per-app", function() {
Expand Down
4 changes: 2 additions & 2 deletions packages/ember-application/tests/system/logging_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,12 +212,12 @@ QUnit.test("log which view is used with a template", function() {
}

App.register('template:application', compile('{{outlet}}'));
App.register('template:foo', function() { return 'Template with custom view'; });
App.register('template:foo', compile('Template with custom view'));
App.register('view:posts', View.extend({ templateName: 'foo' }));
run(App, 'advanceReadiness');

visit('/posts').then(function() {
equal(logs['view:application'], 1, 'expected: Should log use of default view');
equal(logs['view:application'], 1, 'toplevel view always get an element');
equal(logs['view:index'], undefined, 'expected: Should not log when index is not present.');
equal(logs['view:posts'], 1, 'expected: Rendering posts with PostsView.');
});
Expand Down
2 changes: 1 addition & 1 deletion packages/ember-htmlbars/lib/compat/handlebars-get.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@
export default function handlebarsGet(root, path, options) {
Ember.deprecate('Usage of Ember.Handlebars.get is deprecated, use a Component or Ember.Handlebars.makeBoundHelper instead.');

return options.data.view.getStream(path).value();
return options.legacyGetPath(path);
}
Loading