From 7a3e967697b824e13080e92b9b9e0fec2460cfaf Mon Sep 17 00:00:00 2001 From: "James A. Rosen" Date: Sun, 12 Jul 2015 10:42:05 -0700 Subject: [PATCH] [BUGFIX beta] improve errors when InjectedProperty is misused Previously, if InjectedProperty was created improperly, it would fail with an obtuse "undefined has no property type" error. This introduces an assertion to improve the readability of that error case. --- packages/ember-metal/lib/injected_property.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ember-metal/lib/injected_property.js b/packages/ember-metal/lib/injected_property.js index c18e4aff307..8ab7e607748 100644 --- a/packages/ember-metal/lib/injected_property.js +++ b/packages/ember-metal/lib/injected_property.js @@ -23,9 +23,9 @@ function InjectedProperty(type, name) { } function injectedPropertyGet(keyName) { - var possibleDesc = this[keyName]; - var desc = (possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor) ? possibleDesc : undefined; + var desc = this[keyName]; + Ember.assert(`InjectedProperties should be defined with the Ember.inject computed property macros.`, desc && desc.isDescriptor && desc.type); Ember.assert(`Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.`, this.container); return this.container.lookup(desc.type + ':' + (desc.name || keyName));