From e9c371a59b167d3cf938ee5dc6a35918854fd5aa Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Thu, 2 Jun 2016 19:57:49 -0400 Subject: [PATCH] [BUGFIX beta] Avoid _lazyInjections in production builds. --- packages/container/lib/container.js | 16 ++++++++------- packages/ember-runtime/tests/inject_test.js | 22 ++++++++++----------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/container/lib/container.js b/packages/container/lib/container.js index eb7cc2ede53..2debf26b95d 100644 --- a/packages/container/lib/container.js +++ b/packages/container/lib/container.js @@ -1,5 +1,5 @@ import { ENV } from 'ember-environment'; -import { assert, deprecate } from 'ember-metal/debug'; +import { assert, deprecate, runInDebug } from 'ember-metal/debug'; import dictionary from 'ember-metal/dictionary'; import isEnabled from 'ember-metal/features'; import { setOwner, OWNER } from './owner'; @@ -341,13 +341,15 @@ function instantiate(container, fullName) { validationCache = container.validationCache; - // Ensure that all lazy injections are valid at instantiation time - if (!validationCache[fullName] && typeof factory._lazyInjections === 'function') { - lazyInjections = factory._lazyInjections(); - lazyInjections = container.registry.normalizeInjectionsHash(lazyInjections); + runInDebug(function() { + // Ensure that all lazy injections are valid at instantiation time + if (!validationCache[fullName] && typeof factory._lazyInjections === 'function') { + lazyInjections = factory._lazyInjections(); + lazyInjections = container.registry.normalizeInjectionsHash(lazyInjections); - container.registry.validateInjections(lazyInjections); - } + container.registry.validateInjections(lazyInjections); + } + }); validationCache[fullName] = true; diff --git a/packages/ember-runtime/tests/inject_test.js b/packages/ember-runtime/tests/inject_test.js index c6e9c3d618c..72580366ec6 100644 --- a/packages/ember-runtime/tests/inject_test.js +++ b/packages/ember-runtime/tests/inject_test.js @@ -36,20 +36,20 @@ if (!EmberDev.runningProdBuild) { owner.register('foo:main', AnObject); owner._lookupFactory('foo:main'); }); -} -QUnit.test('attempting to inject a nonexistent container key should error', function() { - let owner = buildOwner(); - var AnObject = Object.extend({ - foo: new InjectedProperty('bar', 'baz') - }); + QUnit.test('attempting to inject a nonexistent container key should error', function() { + let owner = buildOwner(); + var AnObject = Object.extend({ + foo: new InjectedProperty('bar', 'baz') + }); - owner.register('foo:main', AnObject); + owner.register('foo:main', AnObject); - throws(function() { - owner.lookup('foo:main'); - }, /Attempting to inject an unknown injection: `bar:baz`/); -}); + throws(function() { + owner.lookup('foo:main'); + }, /Attempting to inject an unknown injection: `bar:baz`/); + }); +} QUnit.test('factories should return a list of lazy injection full names', function() { var AnObject = Object.extend({