dist/ember-template-compiler.js in ember-source-2.5.0.beta.4 vs dist/ember-template-compiler.js in ember-source-2.5.0

- old
+ new

@@ -4,11 +4,11 @@ * @copyright Copyright 2011-2016 Tilde Inc. and contributors * Portions Copyright 2006-2011 Strobe Inc. * Portions Copyright 2008-2011 Apple Inc. All rights reserved. * @license Licensed under MIT license * See https://raw.github.com/emberjs/ember.js/master/LICENSE - * @version 2.5.0-beta.4 + * @version 2.5.0 */ var enifed, requireModule, require, requirejs, Ember; var mainContext = this; @@ -1243,13 +1243,15 @@ @submodule ember-debug */ /** Display a deprecation warning with the provided message and a stack trace - (Chrome and Firefox only). Ember build tools will remove any calls to - `Ember.deprecate()` when doing a production build. + (Chrome and Firefox only). + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + @method deprecate @param {String} message A description of the deprecation. @param {Boolean} test A boolean. If falsy, the deprecation will be displayed. @param {Object} options An object that can be used to pass @@ -1351,15 +1353,15 @@ @class Ember @public */ /** - Define an assertion that will throw an exception if the condition is not - met. Ember build tools will remove any calls to `Ember.assert()` when - doing an Ember.js framework production build and will make the assertion a - no-op for an application production build. Example: + Define an assertion that will throw an exception if the condition is not met. + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + ```javascript // Test for truthiness Ember.assert('Must pass a valid object', obj); // Fail unconditionally @@ -1388,13 +1390,15 @@ throw new _emberMetalError.default('Assertion Failed: ' + desc); } }); /** - Display a debug notice. Ember build tools will remove any calls to - `Ember.debug()` when doing a production build. + Display a debug notice. + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + ```javascript Ember.debug('I\'m a debug notice!'); ``` @method debug @@ -1406,10 +1410,13 @@ }); /** Display an info notice. + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + @method info @private */ _emberMetalDebug.setDebugFunction('info', function info() { _emberMetalLogger.default.info.apply(undefined, arguments); @@ -1419,12 +1426,11 @@ Alias an old, deprecated method with its new counterpart. Display a deprecation warning with the provided message and a stack trace (Chrome and Firefox only) when the assigned method is called. - Ember build tools will not remove calls to `Ember.deprecateFunc()`, though - no warnings will be shown in production. + * In a production build, this method is defined as an empty function (NOP). ```javascript Ember.oldMethod = Ember.deprecateFunc('Please use the new, updated method', Ember.newMethod); ``` @@ -1471,13 +1477,15 @@ if (typeof _ret2 === 'object') return _ret2.v; } }); /** - Run a function meant for debugging. Ember build tools will remove any calls to - `Ember.runInDebug()` when doing a production build. + Run a function meant for debugging. + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + ```javascript Ember.runInDebug(() => { Ember.Component.reopen({ didInsertElement() { console.log("I'm happy"); @@ -1512,29 +1520,33 @@ @private @method _warnIfUsingStrippedFeatureFlags @return {void} */ - function _warnIfUsingStrippedFeatureFlags(FEATURES, featuresWereStripped) { + function _warnIfUsingStrippedFeatureFlags(FEATURES, knownFeatures, featuresWereStripped) { if (featuresWereStripped) { _emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !_emberMetalCore.default.ENV.ENABLE_OPTIONAL_FEATURES, { id: 'ember-debug.feature-flag-with-features-stripped' }); - for (var key in FEATURES) { - if (FEATURES.hasOwnProperty(key) && key !== 'isEnabled') { - _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' }); + var keys = Object.keys(FEATURES || {}); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key === 'isEnabled' || !(key in knownFeatures)) { + continue; } + + _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' }); } } } if (!_emberMetalCore.default.testing) { // Complain if they're using FEATURE flags in builds other than canary _emberMetalFeatures.FEATURES['features-stripped-test'] = true; var featuresWereStripped = true; delete _emberMetalFeatures.FEATURES['features-stripped-test']; - _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, featuresWereStripped); + _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, _emberMetalFeatures.KNOWN_FEATURES, featuresWereStripped); // Inform the developer about the Ember Inspector if not installed. var isFirefox = _emberMetalEnvironment.default.isFirefox; var isChrome = _emberMetalEnvironment.default.isChrome; @@ -1668,13 +1680,15 @@ @module ember @submodule ember-debug */ /** - Display a warning with the provided message. Ember build tools will - remove any calls to `Ember.warn()` when doing a production build. + Display a warning with the provided message. + * In a production build, this method is defined as an empty function (NOP). + Uses of this method in Ember itself are stripped from the ember.prod.js build. + @method warn @param {String} message A warning to display. @param {Boolean} test An optional boolean. If falsy, the warning will be displayed. @param {Object} options An object that can be used to pass a unique @@ -2714,14 +2728,10 @@ function UNDEFINED() {} var DEEP_EACH_REGEX = /\.@each\.[^.]+\./; - // .......................................................... - // COMPUTED PROPERTY - // - /** A computed property transforms an object literal with object's accessor function(s) into a property. By default the function backing the computed property will only be called once and the result will be cached. You can specify various properties @@ -2820,11 +2830,10 @@ - [New CP syntax RFC](https://github.com/emberjs/rfcs/blob/master/text/0011-improved-cp-syntax.md) - [New computed syntax explained in "Ember 1.12 released" ](http://emberjs.com/blog/2015/05/13/ember-1-12-released.html#toc_new-computed-syntax) @class ComputedProperty @namespace Ember - @constructor @public */ function ComputedProperty(config, opts) { this.isDescriptor = true; if (typeof config === 'function') { @@ -2979,11 +2988,10 @@ @method meta @param {Object} meta @chainable @public */ - ComputedPropertyPrototype.meta = function (meta) { if (arguments.length === 0) { return this._meta || {}; } else { this._meta = meta; @@ -3010,37 +3018,10 @@ cache[keyName] = undefined; _emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta); } }; - /** - Access the value of the function backing the computed property. - If this property has already been cached, return the cached result. - Otherwise, call the function passing the property name as an argument. - - ```javascript - let Person = Ember.Object.extend({ - fullName: Ember.computed('firstName', 'lastName', function(keyName) { - // the keyName parameter is 'fullName' in this case. - return this.get('firstName') + ' ' + this.get('lastName'); - }) - }); - - - let tom = Person.create({ - firstName: 'Tom', - lastName: 'Dale' - }); - - tom.get('fullName') // 'Tom Dale' - ``` - - @method get - @param {String} keyName The key being accessed. - @return {Object} The return value of the function backing the CP. - @public - */ ComputedPropertyPrototype.get = function (obj, keyName) { if (this._volatile) { return this._getter.call(obj, keyName); } @@ -3068,58 +3049,10 @@ _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta); return ret; }; - /** - Set the value of a computed property. If the function that backs your - computed property does not accept arguments then the default action for - setting would be to define the property on the current object, and set - the value of the property to the value being set. - - Generally speaking if you intend for your computed property to be set - you should pass `set(key, value)` function in hash as argument to `Ember.computed()` along with `get(key)` function. - - ```javascript - let Person = Ember.Object.extend({ - // these will be supplied by `create` - firstName: null, - lastName: null, - - fullName: Ember.computed('firstName', 'lastName', { - // getter - get() { - let firstName = this.get('firstName'); - let lastName = this.get('lastName'); - - return firstName + ' ' + lastName; - }, - // setter - set(key, value) { - let [firstName, lastName] = value.split(' '); - - this.set('firstName', firstName); - this.set('lastName', lastName); - - return value; - } - }) - }); - - let person = Person.create(); - - person.set('fullName', 'Peter Wagenet'); - person.get('firstName'); // 'Peter' - person.get('lastName'); // 'Wagenet' - ``` - - @method set - @param {String} keyName The key being accessed. - @param {Object} newValue The new value being assigned. - @return {Object} The return value of the function backing the CP. - @public - */ ComputedPropertyPrototype.set = function computedPropertySetEntry(obj, keyName, value) { if (this._readOnly) { this._throwReadOnlyError(obj, keyName); } @@ -4037,21 +3970,19 @@ /** This namespace contains all Ember methods and functions. Future versions of Ember may overwrite this namespace and therefore, you should avoid adding any new properties. - You can also use the shorthand `Em` instead of `Ember`. - At the heart of Ember is Ember-Runtime, a set of core functions that provide cross-platform compatibility and object property observing. Ember-Runtime is small and performance-focused so you can use it alongside other cross-platform libraries such as jQuery. For more details, see [Ember-Runtime](http://emberjs.com/api/modules/ember-runtime.html). @class Ember @static - @version 2.5.0-beta.4 + @version 2.5.0 @public */ if ('undefined' === typeof Ember) { // Create core object. Make it act like an instance of Ember.Namespace so that @@ -4089,15 +4020,15 @@ /** The semantic version. @property VERSION @type String - @default '2.5.0-beta.4' + @default '2.5.0' @static @public */ - Ember.VERSION = '2.5.0-beta.4'; + Ember.VERSION = '2.5.0'; /** The hash of environment variables used to control various configuration settings. To specify your own or override default settings, add the desired properties to a global hash named `EmberENV` (or `ENV` for @@ -4916,13 +4847,15 @@ @namespace Ember @static @since 1.1.0 @public */ - var FEATURES = _emberMetalAssign.default({}, _emberMetalCore.default.ENV.FEATURES);exports.FEATURES = FEATURES; + var KNOWN_FEATURES = {};exports.KNOWN_FEATURES = KNOWN_FEATURES; // jshint ignore:line + var FEATURES = _emberMetalAssign.default(KNOWN_FEATURES, _emberMetalCore.default.ENV.FEATURES); + exports.FEATURES = FEATURES; /** Determine whether the specified `feature` is enabled. Used by Ember's build tools to exclude experimental features from beta/stable builds. You can define the following configuration options: @@ -6399,11 +6332,13 @@ @return {Object} @public */ function merge(original, updates) { - _emberMetalDebug.deprecate('Usage of `Ember.merge` is deprecated, use `Ember.assign` instead.', false, { id: 'ember-metal.merge', until: '3.0.0' }); + _emberMetalDebug.deprecate('Usage of `Ember.merge` is deprecated, use `Ember.assign` instead.', false, { + id: 'ember-metal.merge', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-merge' + }); if (!updates || typeof updates !== 'object') { return original; } @@ -8255,13 +8190,13 @@ // define a simple property Ember.defineProperty(contact, 'lastName', undefined, 'Jolley'); // define a computed property - Ember.defineProperty(contact, 'fullName', Ember.computed(function() { + Ember.defineProperty(contact, 'fullName', Ember.computed('firstName', 'lastName', function() { return this.firstName+' '+this.lastName; - }).property('firstName', 'lastName')); + })); ``` @private @method defineProperty @for Ember @@ -9881,15 +9816,17 @@ ProxyStream.extend = _emberMetalStreamsStream.default.extend; exports.default = ProxyStream; }); -enifed('ember-metal/streams/stream', ['exports', 'ember-metal/assign', 'ember-metal/debug', 'ember-metal/path_cache', 'ember-metal/observer', 'ember-metal/streams/utils', 'ember-metal/empty_object', 'ember-metal/streams/subscriber', 'ember-metal/streams/dependency', 'ember-metal/utils', 'require'], function (exports, _emberMetalAssign, _emberMetalDebug, _emberMetalPath_cache, _emberMetalObserver, _emberMetalStreamsUtils, _emberMetalEmpty_object, _emberMetalStreamsSubscriber, _emberMetalStreamsDependency, _emberMetalUtils, _require) { +enifed('ember-metal/streams/stream', ['exports', 'ember-metal/assign', 'ember-metal/debug', 'ember-metal/path_cache', 'ember-metal/observer', 'ember-metal/streams/utils', 'ember-metal/empty_object', 'ember-metal/streams/subscriber', 'ember-metal/streams/dependency', 'ember-metal/utils', 'require', 'ember-metal/symbol'], function (exports, _emberMetalAssign, _emberMetalDebug, _emberMetalPath_cache, _emberMetalObserver, _emberMetalStreamsUtils, _emberMetalEmpty_object, _emberMetalStreamsSubscriber, _emberMetalStreamsDependency, _emberMetalUtils, _require, _emberMetalSymbol) { 'use strict'; exports.wrap = wrap; + var IS_STREAM = _emberMetalSymbol.default('IS_STREAM'); + exports.IS_STREAM = IS_STREAM; /** @module ember-metal */ /** @@ -9904,13 +9841,12 @@ var KeyStream; var ProxyMixin; BasicStream.prototype = { - isStream: true, - _init: function (label) { + this[IS_STREAM] = true; this.label = makeLabel(label); this.isActive = false; this.isDirty = true; this.isDestroyed = false; this.cache = undefined; @@ -10306,11 +10242,11 @@ @param {Object|Stream} object Object to check whether it is a stream. @return {Boolean} `true` if the object is a stream, `false` otherwise. */ function isStream(object) { - return object && object.isStream; + return object && object[_emberMetalStreamsStream.IS_STREAM]; } /* A method of subscribing to a stream which is safe for use with a non-stream object. If a non-stream object is passed, the function does nothing. @@ -10323,11 +10259,11 @@ @param {Object} [context] the callback will be executed with this context if it is provided. */ function subscribe(object, callback, context) { - if (object && object.isStream) { + if (object && object[_emberMetalStreamsStream.IS_STREAM]) { return object.subscribe(callback, context); } } /* @@ -10341,11 +10277,11 @@ @param {Function} callback Function originally passed to `subscribe()`. @param {Object} [context] Object originally passed to `subscribe()`. */ function unsubscribe(object, callback, context) { - if (object && object.isStream) { + if (object && object[_emberMetalStreamsStream.IS_STREAM]) { object.unsubscribe(callback, context); } } /* @@ -10358,11 +10294,11 @@ @param {Object|Stream} object Object to return the value of. @return The stream's current value, or the non-stream object itself. */ function read(object) { - if (object && object.isStream) { + if (object && object[_emberMetalStreamsStream.IS_STREAM]) { return object.value(); } else { return object; } } @@ -10653,11 +10589,11 @@ return fn(); } } function setValue(object, value) { - if (object && object.isStream) { + if (object && object[_emberMetalStreamsStream.IS_STREAM]) { object.setValue(value); } } }); enifed('ember-metal/symbol', ['exports', 'ember-metal/utils'], function (exports, _emberMetalUtils) { @@ -11668,11 +11604,11 @@ EmberHandlebars.precompile = _emberTemplateCompilerCompatPrecompile.default; EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default; EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default; }); -enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/plugins/assert-no-each-in', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerPluginsAssertNoEachIn, _emberTemplateCompilerCompat) { +enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/deprecate-render-block', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/plugins/assert-no-each-in', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsDeprecateRenderBlock, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerPluginsAssertNoEachIn, _emberTemplateCompilerCompat) { 'use strict'; _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default); @@ -11681,10 +11617,11 @@ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default); + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateRenderBlock.default); _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoEachIn.default); if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) { _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default); } else { @@ -11869,10 +11806,49 @@ return (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && node.path.parts[0] === 'view'; } exports.default = AssertNoViewHelper; }); +enifed('ember-template-compiler/plugins/deprecate-render-block', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) { + 'use strict'; + + exports.default = DeprecateRenderBlock; + + function DeprecateRenderBlock(options) { + this.syntax = null; + this.options = options; + } + + DeprecateRenderBlock.prototype.transform = function DeprecateRenderBlock_transform(ast) { + var moduleName = this.options.moduleName; + var walker = new this.syntax.Walker(); + + walker.visit(ast, function (node) { + if (!validate(node)) { + return; + } + + _emberMetalDebug.deprecate(deprecationMessage(moduleName, node), false, { + id: 'ember-template-compiler.deprecate-render-block', + until: '2.4.0', + url: 'http://emberjs.com/deprecations/v2.x#toc_render-helper-with-block' + }); + }); + + return ast; + }; + + function validate(node) { + return node.type === 'BlockStatement' && node.path.original === 'render'; + } + + function deprecationMessage(moduleName, node) { + var sourceInformation = _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc); + + return 'Usage of `render` in block form is deprecated ' + sourceInformation + '.'; + } +}); enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) { 'use strict'; function TransformAngleBracketComponents() { // set later within HTMLBars to the syntax package @@ -12776,11 +12752,11 @@ options.plugins = plugins; options.buildMeta = function buildMeta(program) { return { fragmentReason: fragmentReason(program), - revision: 'Ember@2.5.0-beta.4', + revision: 'Ember@2.5.0', loc: program.loc, moduleName: options.moduleName }; }; @@ -20688,6 +20664,6 @@ }()); ; if (typeof exports === "object") { module.exports = Ember.__loader.require("ember-template-compiler"); - }//# sourceMappingURL=ember-template-compiler.map + } \ No newline at end of file