dist/ember-template-compiler.js in ember-source-2.3.2 vs dist/ember-template-compiler.js in ember-source-2.4.0.beta.2

- old
+ new

@@ -4,11 +4,11 @@ * @copyright Copyright 2011-2015 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.3.2 + * @version 2.4.0-beta.2 */ var enifed, requireModule, require, requirejs, Ember; var mainContext = this; @@ -41,34 +41,47 @@ }; requirejs = require = requireModule = function(name) { return internalRequire(name, null); } + + // setup `require` module require['default'] = require; + require.has = function registryHas(moduleName) { + return !!registry[moduleName] || !!registry[moduleName + '/index']; + }; + function missingModule(name, referrerName) { if (referrerName) { throw new Error('Could not find module ' + name + ' required by: ' + referrerName); } else { throw new Error('Could not find module ' + name); } } - function internalRequire(name, referrerName) { + function internalRequire(_name, referrerName) { + var name = _name; + var mod = registry[name]; + + if (!mod) { + name = name + '/index'; + mod = registry[name]; + } + var exports = seen[name]; if (exports !== undefined) { return exports; } exports = seen[name] = {}; - if (!registry[name]) { - missingModule(name, referrerName); + if (!mod) { + missingModule(_name, referrerName); } - var mod = registry[name]; var deps = mod.deps; var callback = mod.callback; var length = deps.length; var reified = new Array(length);; @@ -195,23 +208,12 @@ } } }; }); enifed('backburner/platform', ['exports'], function (exports) { - // In IE 6-8, try/finally doesn't work without a catch. - // Unfortunately, this is impossible to test for since wrapping it in a parent try/catch doesn't trigger the bug. - // This tests for another broken try/catch behavior that only exhibits in the same versions of IE. 'use strict'; - var needsIETryCatchFix = (function (e, x) { - try { - x(); - } catch (e) {} // jshint ignore:line - return !!e; - })(); - - exports.needsIETryCatchFix = needsIETryCatchFix; var platform; /* global self */ if (typeof self === 'object') { platform = self; @@ -535,13 +537,10 @@ this._boundRunExpiredTimers = function () { _this._runExpiredTimers(); }; } - // ms of delay before we conclude a timeout was lost - var TIMEOUT_STALLED_THRESHOLD = 1000; - Backburner.prototype = { begin: function () { var options = this.options; var onBegin = options && options.onBegin; var previousInstance = this.currentInstance; @@ -899,12 +898,10 @@ this._timers.push(executeAt, fn); this._installTimerTimeout(); return fn; } - this._reinstallStalledTimerTimeout(); - // find position to insert var i = _backburnerBinarySearch.default(executeAt, this._timers); this._timers.splice(i, 0, executeAt, fn); @@ -1097,25 +1094,10 @@ } timers.splice(0, i); this._installTimerTimeout(); }, - _reinstallStalledTimerTimeout: function () { - if (!this._timerTimeoutId) { - return; - } - // if we have a timer we should always have a this._timerTimeoutId - var minExpiresAt = this._timers[0]; - var delay = _backburnerUtils.now() - minExpiresAt; - // threshold of a second before we assume that the currently - // installed timeout will not run, so we don't constantly reinstall - // timeouts that are delayed but good still - if (delay < TIMEOUT_STALLED_THRESHOLD) { - return; - } - }, - _reinstallTimerTimeout: function () { this._clearTimerTimeout(); this._installTimerTimeout(); }, @@ -1140,18 +1122,10 @@ Backburner.prototype.schedule = Backburner.prototype.defer; Backburner.prototype.scheduleOnce = Backburner.prototype.deferOnce; Backburner.prototype.later = Backburner.prototype.setTimeout; - if (_backburnerPlatform.needsIETryCatchFix) { - var originalRun = Backburner.prototype.run; - Backburner.prototype.run = _backburnerUtils.wrapInTryCatch(originalRun); - - var originalEnd = Backburner.prototype.end; - Backburner.prototype.end = _backburnerUtils.wrapInTryCatch(originalEnd); - } - function getOnError(options) { return options.onError || options.onErrorTarget && options.onErrorTarget[options.onErrorMethod]; } function createAutorun(backburner) { @@ -1370,86 +1344,13 @@ if (handlerForType) { handlerForType(message, options); } } }); -enifed('ember-debug/is-plain-function', ['exports'], function (exports) { +enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) { 'use strict'; - exports.default = isPlainFunction; - - function isPlainFunction(test) { - return typeof test === 'function' && test.PrototypeMixin === undefined; - } -}); -enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) { - 'use strict'; - - var _slice = Array.prototype.slice; - exports.registerHandler = registerHandler; - exports.default = warn; - - function registerHandler(handler) { - _emberDebugHandlers.registerHandler('warn', handler); - } - - registerHandler(function logWarning(message, options) { - _emberMetalLogger.default.warn('WARNING: ' + message); - if ('trace' in _emberMetalLogger.default) { - _emberMetalLogger.default.trace(); - } - }); - - var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.'; - exports.missingOptionsDeprecation = missingOptionsDeprecation; - var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.'; - - exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation; - /** - @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. - - @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 ojbect that can be used to pass a unique - `id` for this warning. The `id` can be used by Ember debugging tools - to change the behavior (raise, log, or silence) for that specific warning. - The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped" - @for Ember - @public - */ - - function warn(message, test, options) { - if (!options) { - _emberMetalDebug.deprecate(missingOptionsDeprecation, false, { - id: 'ember-debug.warn-options-missing', - until: '3.0.0', - url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options' - }); - } - - if (options && !options.id) { - _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, { - id: 'ember-debug.warn-id-missing', - until: '3.0.0', - url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options' - }); - } - - _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments))); - } -}); -enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) { - 'use strict'; - exports._warnIfUsingStrippedFeatureFlags = _warnIfUsingStrippedFeatureFlags; /** @module ember @submodule ember-debug @@ -1737,10 +1638,83 @@ exports.runningNonEmberDebugJS = runningNonEmberDebugJS; if (runningNonEmberDebugJS) { _emberMetalDebug.warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.'); } }); +enifed('ember-debug/is-plain-function', ['exports'], function (exports) { + 'use strict'; + + exports.default = isPlainFunction; + + function isPlainFunction(test) { + return typeof test === 'function' && test.PrototypeMixin === undefined; + } +}); +enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) { + 'use strict'; + + var _slice = Array.prototype.slice; + exports.registerHandler = registerHandler; + exports.default = warn; + + function registerHandler(handler) { + _emberDebugHandlers.registerHandler('warn', handler); + } + + registerHandler(function logWarning(message, options) { + _emberMetalLogger.default.warn('WARNING: ' + message); + if ('trace' in _emberMetalLogger.default) { + _emberMetalLogger.default.trace(); + } + }); + + var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.'; + exports.missingOptionsDeprecation = missingOptionsDeprecation; + var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.'; + + exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation; + /** + @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. + + @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 ojbect that can be used to pass a unique + `id` for this warning. The `id` can be used by Ember debugging tools + to change the behavior (raise, log, or silence) for that specific warning. + The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped" + @for Ember + @public + */ + + function warn(message, test, options) { + if (!options) { + _emberMetalDebug.deprecate(missingOptionsDeprecation, false, { + id: 'ember-debug.warn-options-missing', + until: '3.0.0', + url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options' + }); + } + + if (options && !options.id) { + _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, { + id: 'ember-debug.warn-id-missing', + until: '3.0.0', + url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options' + }); + } + + _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments))); + } +}); enifed('ember-metal/alias', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/error', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/dependent_keys'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalError, _emberMetalProperties, _emberMetalComputed, _emberMetalUtils, _emberMetalMeta, _emberMetalDependent_keys) { 'use strict'; exports.default = alias; exports.AliasedProperty = AliasedProperty; @@ -2438,13 +2412,13 @@ revalidate: function (key) { this.notify(key, true, undefined); }, // key: the string key that is part of a path changed - // revalidate: boolean the chains that are watching this value should revalidate - // callback: function that will be called with the the object and path that - // will be/are invalidated by this key change depending on the + // revalidate: boolean; the chains that are watching this value should revalidate + // callback: function that will be called with the object and path that + // will be/are invalidated by this key change, depending on // whether the revalidate flag is passed notify: function (key, revalidate, callback) { var nodes = this.chains[key]; if (nodes === undefined || nodes.length === 0) { return; @@ -2797,10 +2771,12 @@ @submodule ember-metal */ function UNDEFINED() {} + var DEEP_EACH_REGEX = /\.@each\.[^.]+\./; + // .......................................................... // COMPUTED PROPERTY // /** @@ -3024,10 +3000,11 @@ */ ComputedPropertyPrototype.property = function () { var args; var addArg = function (property) { + _emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + 'You cannot use nested forms like todos.@each.owner.name or todos.@each.owner.@each.name. ' + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' }); args.push(property); }; args = []; for (var i = 0, l = arguments.length; i < l; i++) { @@ -4104,13 +4081,15 @@ return value; } }); } }); -enifed('ember-metal/core', ['exports'], function (exports) { +enifed('ember-metal/core', ['exports', 'require'], function (exports, _require) { /*globals Ember:true,ENV,EmberENV */ + 'use strict'; + /** @module ember @submodule ember-metal */ @@ -4127,16 +4106,14 @@ 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.3.2 + @version 2.4.0-beta.2 @public */ - 'use strict'; - if ('undefined' === typeof Ember) { // Create core object. Make it act like an instance of Ember.Namespace so that // objects assigned to it are given a sane string representation. Ember = {}; } @@ -4158,11 +4135,11 @@ return 'Ember'; }; // The debug functions are exported to globals with `require` to // prevent babel-plugin-filter-imports from removing them. - var debugModule = Ember.__loader.require('ember-metal/debug'); + var debugModule = _require.default('ember-metal/debug'); Ember.assert = debugModule.assert; Ember.warn = debugModule.warn; Ember.debug = debugModule.debug; Ember.deprecate = debugModule.deprecate; Ember.deprecateFunc = debugModule.deprecateFunc; @@ -4171,15 +4148,15 @@ /** The semantic version. @property VERSION @type String - @default '2.3.2' + @default '2.4.0-beta.2' @static @public */ - Ember.VERSION = '2.3.2'; + Ember.VERSION = '2.4.0-beta.2'; /** 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 @@ -4441,22 +4418,28 @@ return _emberMetalProperty_get.get(this, newKey); } }); } }); -enifed('ember-metal/dictionary', ['exports'], function (exports) { +enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) { + 'use strict'; + + exports.default = makeDictionary; + // the delete is meant to hint at runtimes that this object should remain in // dictionary mode. This is clearly a runtime specific hack, but currently it // appears worthwhile in some usecases. Please note, these deletes do increase // the cost of creation dramatically over a plain Object.create. And as this // only makes sense for long-lived dictionaries that aren't instantiated often. - 'use strict'; - exports.default = makeDictionary; - function makeDictionary(parent) { - var dict = Object.create(parent); + var dict; + if (parent === null) { + dict = new _emberMetalEmpty_object.default(); + } else { + dict = Object.create(parent); + } dict['_dict'] = null; delete dict['_dict']; return dict; } }); @@ -5073,10 +5056,222 @@ ret[propertyNames[i]] = _emberMetalProperty_get.get(obj, propertyNames[i]); } return ret; } }); +enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) { + /** + @module ember + @submodule ember-metal + */ + + // BEGIN IMPORTS + 'use strict'; + + _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty; + _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty; + _emberMetalComputed.computed.none = _emberMetalComputed_macros.none; + _emberMetalComputed.computed.not = _emberMetalComputed_macros.not; + _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool; + _emberMetalComputed.computed.match = _emberMetalComputed_macros.match; + _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal; + _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt; + _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte; + _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt; + _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte; + _emberMetalComputed.computed.alias = _emberMetalAlias.default; + _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay; + _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay; + _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly; + _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo; + _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias; + _emberMetalComputed.computed.and = _emberMetalComputed_macros.and; + _emberMetalComputed.computed.or = _emberMetalComputed_macros.or; + _emberMetalComputed.computed.any = _emberMetalComputed_macros.any; + + // END IMPORTS + + // BEGIN EXPORTS + var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {}; + EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument; + EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe; + EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe; + EmberInstrumentation.reset = _emberMetalInstrumentation.reset; + + _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument; + _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe; + + _emberMetalCore.default._Cache = _emberMetalCache.default; + + _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid; + _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY; + _emberMetalCore.default.platform = { + defineProperty: true, + hasPropertyAccessors: true + }; + + _emberMetalCore.default.Error = _emberMetalError.default; + _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor; + _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC; + _emberMetalCore.default.meta = _emberMetalMeta.meta; + _emberMetalCore.default.inspect = _emberMetalUtils.inspect; + + _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally; + _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray; + _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke; + _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke; + _emberMetalCore.default.wrap = _emberMetalUtils.wrap; + _emberMetalCore.default.apply = _emberMetalUtils.apply; + _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr; + _emberMetalCore.default.uuid = _emberMetalUtils.uuid; + + _emberMetalCore.default.Logger = _emberMetalLogger.default; + + _emberMetalCore.default.get = _emberMetalProperty_get.get; + _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault; + _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple; + _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath; + + _emberMetalCore.default.on = _emberMetalEvents.on; + _emberMetalCore.default.addListener = _emberMetalEvents.addListener; + _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener; + _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener; + _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners; + _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent; + _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners; + _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents; + _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor; + _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners; + + _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default; + + _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange; + _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange; + _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains; + _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges; + _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges; + _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties; + + _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty; + + _emberMetalCore.default.set = _emberMetalProperty_set.set; + _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet; + + _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet; + _emberMetalCore.default.Map = _emberMetalMap.Map; + _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault; + + _emberMetalCore.default.getProperties = _emberMetalGet_properties.default; + _emberMetalCore.default.setProperties = _emberMetalSet_properties.default; + + _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey; + _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey; + + _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains; + _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher; + _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode; + _emberMetalCore.default.finishChains = _emberMetalChains.finishChains; + + _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath; + _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath; + + _emberMetalCore.default.watch = _emberMetalWatching.watch; + _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching; + _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch; + _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch; + _emberMetalCore.default.destroy = _emberMetalWatching.destroy; + + _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default; + + _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty; + _emberMetalCore.default.computed = _emberMetalComputed.computed; + _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor; + + _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver; + _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor; + _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver; + _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver; + _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers; + + _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING; + _emberMetalCore.default.required = _emberMetalMixin.required; + _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod; + _emberMetalCore.default.observer = _emberMetalMixin.observer; + _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver; + _emberMetalCore.default.mixin = _emberMetalMixin.mixin; + _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin; + + _emberMetalCore.default.bind = _emberMetalBinding.bind; + _emberMetalCore.default.Binding = _emberMetalBinding.Binding; + _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath; + + _emberMetalCore.default.run = _emberMetalRun_loop.default; + + /** + @class Backburner + @for Ember + @private + */ + _emberMetalCore.default.Backburner = _backburner.default; + // this is the new go forward, once Ember Data updates to using `_Backburner` we + // can remove the non-underscored version. + _emberMetalCore.default._Backburner = _backburner.default; + + _emberMetalCore.default.libraries = new _emberMetalLibraries.default(); + _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION); + + _emberMetalCore.default.isNone = _emberMetalIs_none.default; + _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default; + _emberMetalCore.default.isBlank = _emberMetalIs_blank.default; + _emberMetalCore.default.isPresent = _emberMetalIs_present.default; + + _emberMetalCore.default.merge = _emberMetalMerge.default; + + _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES; + _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default; + + /** + A function may be assigned to `Ember.onerror` to be called when Ember + internals encounter an error. This is useful for specialized error handling + and reporting code. + + ```javascript + Ember.onerror = function(error) { + Em.$.ajax('/report-error', 'POST', { + stack: error.stack, + otherInformation: 'whatever app state you want to provide' + }); + }; + ``` + + Internally, `Ember.onerror` is used as Backburner's error handler. + + @event onerror + @for Ember + @param {Exception} error the error object + @public + */ + _emberMetalCore.default.onerror = null; + // END EXPORTS + + // do this for side-effects of updating Ember.assert, warn, etc when + // ember-debug is present + // This needs to be called before any deprecateFunc + if (_require.has('ember-debug')) { + _require.default('ember-debug'); + } else { + _emberMetalCore.default.Debug = {}; + + _emberMetalCore.default.Debug.registerDeprecationHandler = function () {}; + _emberMetalCore.default.Debug.registerWarnHandler = function () {}; + } + + _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create); + _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys); + + exports.default = _emberMetalCore.default; +}); enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties', 'container/owner'], function (exports, _emberMetalDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties, _containerOwner) { 'use strict'; /** Read-only property that returns the result of a container lookup. @@ -5512,17 +5707,22 @@ ```javascript Ember.isPresent(); // false Ember.isPresent(null); // false Ember.isPresent(undefined); // false Ember.isPresent(''); // false - Ember.isPresent([]); // false - Ember.isPresent('\n\t'); // false Ember.isPresent(' '); // false + Ember.isPresent('\n\t'); // false + Ember.isPresent([]); // false + Ember.isPresent({ length: 0 }) // false + Ember.isPresent(false); // true + Ember.isPresent(true); // true + Ember.isPresent('string'); // true + Ember.isPresent(0); // true + Ember.isPresent(function() {}) // true Ember.isPresent({}); // true Ember.isPresent(false); // true Ember.isPresent('\n\t Hello'); // true - Ember.isPresent('Hello world'); // true Ember.isPresent([1,2,3]); // true ``` @method isPresent @for Ember @@ -7293,11 +7493,11 @@ }); //filters will be created as a separate array during the object's initialization App.Filterable = Ember.Mixin.create({ init: function() { - this._super.apply(this, arguments); + this._super(...arguments); this.set("filters", Ember.A()); } }); ``` @@ -8028,10 +8228,11 @@ 'use strict'; exports.Descriptor = Descriptor; exports.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION; exports.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION; + exports.INHERITING_GETTER_FUNCTION = INHERITING_GETTER_FUNCTION; exports.defineProperty = defineProperty; // .......................................................... // DESCRIPTOR // @@ -8046,27 +8247,56 @@ function Descriptor() { this.isDescriptor = true; } + var REDEFINE_SUPPORTED = (function () { + // https://github.com/spalger/kibana/commit/b7e35e6737df585585332857a4c397dc206e7ff9 + var a = Object.create(Object.prototype, { + prop: { + configurable: true, + value: 1 + } + }); + + Object.defineProperty(a, 'prop', { + configurable: true, + value: 2 + }); + + return a.prop === 2; + })(); // .......................................................... // DEFINING PROPERTIES API // function MANDATORY_SETTER_FUNCTION(name) { - return function SETTER_FUNCTION(value) { + function SETTER_FUNCTION(value) { _emberMetalDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false); - }; + } + + SETTER_FUNCTION.isMandatorySetter = true; + return SETTER_FUNCTION; } function DEFAULT_GETTER_FUNCTION(name) { return function GETTER_FUNCTION() { var meta = this['__ember_meta__']; return meta && meta.peekValues(name); }; } + function INHERITING_GETTER_FUNCTION(name) { + function IGETTER_FUNCTION() { + var proto = Object.getPrototypeOf(this); + return proto && proto[name]; + } + + IGETTER_FUNCTION.isInheritingGetter = true; + return IGETTER_FUNCTION; + } + /** NOTE: This is a low-level method used by other parts of the API. You almost never want to call this method directly. Instead you should use `Ember.mixin()` to define new properties. @@ -8148,16 +8378,23 @@ if (desc == null) { value = data; if (watching) { meta.writeValues(keyName, data); - Object.defineProperty(obj, keyName, { + + var defaultDescriptor = { configurable: true, enumerable: true, set: MANDATORY_SETTER_FUNCTION(keyName), get: DEFAULT_GETTER_FUNCTION(keyName) - }); + }; + + if (REDEFINE_SUPPORTED) { + Object.defineProperty(obj, keyName, defaultDescriptor); + } else { + handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor); + } } else { obj[keyName] = data; } } else { value = desc; @@ -8179,10 +8416,16 @@ obj.didDefineProperty(obj, keyName, value); } return this; } + + function handleBrokenPhantomDefineProperty(obj, keyName, desc) { + // https://github.com/ariya/phantomjs/issues/11856 + Object.defineProperty(obj, keyName, { configurable: true, writable: true, value: 'iCry' }); + Object.defineProperty(obj, keyName, desc); + } }); enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/symbol'], function (exports, _emberMetalUtils, _emberMetalMeta, _emberMetalEvents, _emberMetalObserver_set, _emberMetalSymbol) { 'use strict'; var PROPERTY_DID_CHANGE = _emberMetalSymbol.default('PROPERTY_DID_CHANGE'); @@ -8463,11 +8706,11 @@ exports.overrideChains = overrideChains; exports.beginPropertyChanges = beginPropertyChanges; exports.endPropertyChanges = endPropertyChanges; exports.changeProperties = changeProperties; }); -enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) { +enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/error', 'ember-metal/path_cache'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalError, _emberMetalPath_cache) { /** @module ember-metal */ 'use strict'; @@ -8521,11 +8764,10 @@ // Helpers that operate with 'this' within an #each if (keyName === '') { return obj; } - var meta = _emberMetalMeta.peekMeta(obj); var value = obj[keyName]; var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined; var ret; if (desc === undefined && _emberMetalPath_cache.isPath(keyName)) { @@ -8533,15 +8775,11 @@ } if (desc) { return desc.get(obj, keyName); } else { - if (meta && meta.peekWatching(keyName) > 0) { - ret = meta.peekValues(keyName); - } else { - ret = value; - } + ret = value; if (ret === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) { return obj.unknownProperty(keyName); } @@ -8648,11 +8886,11 @@ return value; } exports.default = get; }); -enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) { +enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta', 'ember-metal/utils'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta, _emberMetalUtils) { 'use strict'; exports.set = set; exports.trySet = trySet; @@ -8705,20 +8943,26 @@ // `setUnknownProperty` method exists on the object if (isUnknown && 'function' === typeof obj.setUnknownProperty) { obj.setUnknownProperty(keyName, value); } else if (meta && meta.peekWatching(keyName) > 0) { if (meta.proto !== obj) { - currentValue = meta.peekValues(keyName); + currentValue = obj[keyName]; } // only trigger a change if the value has changed if (value !== currentValue) { _emberMetalProperty_events.propertyWillChange(obj, keyName); if (currentValue === undefined && !(keyName in obj) || !Object.prototype.propertyIsEnumerable.call(obj, keyName)) { _emberMetalProperties.defineProperty(obj, keyName, null, value); // setup mandatory setter } else { - meta.writeValues(keyName, value); + var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName); + var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter; + if (isMandatorySetter) { + meta.writeValues(keyName, value); + } else { + obj[keyName] = value; + } } _emberMetalProperty_events.propertyDidChange(obj, keyName); } } else { @@ -10576,10 +10820,11 @@ exports.tryInvoke = tryInvoke; exports.makeArray = makeArray; exports.inspect = inspect; exports.apply = apply; exports.applyStr = applyStr; + exports.lookupDescriptor = lookupDescriptor; var _uuid = 0; /** Generates a universally unique identifier. This method is used internally by Ember for assisting with @@ -11109,22 +11354,36 @@ default: return t[m].apply(t, a); } } + function lookupDescriptor(obj, keyName) { + var current = obj; + while (current) { + var descriptor = Object.getOwnPropertyDescriptor(current, keyName); + + if (descriptor) { + return descriptor; + } + + current = Object.getPrototypeOf(current); + } + + return null; + } + exports.GUID_KEY = GUID_KEY; exports.makeArray = makeArray; exports.canInvoke = canInvoke; }); -enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties) { +enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties', 'ember-metal/utils'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties, _emberMetalUtils) { 'use strict'; exports.watchKey = watchKey; exports.unwatchKey = unwatchKey; - var handleMandatorySetter = undefined, - lookupDescriptor = undefined; + var handleMandatorySetter = undefined; function watchKey(obj, keyName, meta) { // can't watch length on Array - it is special... if (keyName === 'length' && Array.isArray(obj)) { return; @@ -11144,33 +11403,22 @@ if ('function' === typeof obj.willWatchProperty) { obj.willWatchProperty(keyName); } + // NOTE: this is dropped for prod + minified builds handleMandatorySetter(m, obj, keyName); } else { m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1); } } - lookupDescriptor = function lookupDescriptor(obj, keyName) { - var current = obj; - while (current) { - var descriptor = Object.getOwnPropertyDescriptor(current, keyName); - - if (descriptor) { - return descriptor; - } - - current = Object.getPrototypeOf(current); - } - - return null; - }; - + // Future traveler, although this code looks scary. It merely exists in + // development to aid in development asertions. Production builds of + // ember strip this entire block out handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) { - var descriptor = lookupDescriptor(obj, keyName); + var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName); var configurable = descriptor ? descriptor.configurable : true; var isWritable = descriptor ? descriptor.writable : true; var hasValue = descriptor ? 'value' in descriptor : true; var possibleDesc = descriptor && descriptor.value; var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor; @@ -11179,17 +11427,25 @@ return; } // this x in Y deopts, so keeping it in this function is better; if (configurable && isWritable && hasValue && keyName in obj) { - m.writeValues(keyName, obj[keyName]); - Object.defineProperty(obj, keyName, { + var desc = { configurable: true, enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName), set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName), - get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName) - }); + get: undefined + }; + + if (Object.prototype.hasOwnProperty.call(obj, keyName)) { + m.writeValues(keyName, obj[keyName]); + desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName); + } else { + desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName); + } + + Object.defineProperty(obj, keyName, desc); } }; function unwatchKey(obj, keyName, meta) { var m = meta || _emberMetalMeta.meta(obj); @@ -11197,34 +11453,43 @@ if (count === 1) { m.writeWatching(keyName, 0); var possibleDesc = obj[keyName]; var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined; + if (desc && desc.didUnwatch) { desc.didUnwatch(obj, keyName); } if ('function' === typeof obj.didUnwatchProperty) { obj.didUnwatchProperty(keyName); } + // It is true, the following code looks quite WAT. But have no fear, It + // exists purely to improve development ergonomics and is removed from + // ember.min.js and ember.prod.js builds. + // + // Some further context: Once a property is watched by ember, bypassing `set` + // for mutation, will bypass observation. This code exists to assert when + // that occurs, and attempt to provide more helpful feedback. The alternative + // is tricky to debug partially observable properties. if (!desc && keyName in obj) { - Object.defineProperty(obj, keyName, { - configurable: true, - enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName), - set: function (val) { - // redefine to set as enumerable + var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName); + + if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) { + if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) { + delete obj[keyName]; + } else { Object.defineProperty(obj, keyName, { configurable: true, + enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName), writable: true, - enumerable: true, - value: val + value: m.peekValues(keyName) }); m.deleteFromValues(keyName); - }, - get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName) - }); + } + } } } else if (count > 1) { m.writeWatching(keyName, count - 1); } } @@ -11385,234 +11650,22 @@ } } } } }); -enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) { +enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) { /** @module ember - @submodule ember-metal - */ - - // BEGIN IMPORTS - 'use strict'; - - _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty; - _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty; - _emberMetalComputed.computed.none = _emberMetalComputed_macros.none; - _emberMetalComputed.computed.not = _emberMetalComputed_macros.not; - _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool; - _emberMetalComputed.computed.match = _emberMetalComputed_macros.match; - _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal; - _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt; - _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte; - _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt; - _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte; - _emberMetalComputed.computed.alias = _emberMetalAlias.default; - _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay; - _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay; - _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly; - _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo; - _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias; - _emberMetalComputed.computed.and = _emberMetalComputed_macros.and; - _emberMetalComputed.computed.or = _emberMetalComputed_macros.or; - _emberMetalComputed.computed.any = _emberMetalComputed_macros.any; - - // END IMPORTS - - // BEGIN EXPORTS - var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {}; - EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument; - EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe; - EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe; - EmberInstrumentation.reset = _emberMetalInstrumentation.reset; - - _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument; - _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe; - - _emberMetalCore.default._Cache = _emberMetalCache.default; - - _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid; - _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY; - _emberMetalCore.default.platform = { - defineProperty: true, - hasPropertyAccessors: true - }; - - _emberMetalCore.default.Error = _emberMetalError.default; - _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor; - _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC; - _emberMetalCore.default.meta = _emberMetalMeta.meta; - _emberMetalCore.default.inspect = _emberMetalUtils.inspect; - - _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally; - _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray; - _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke; - _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke; - _emberMetalCore.default.wrap = _emberMetalUtils.wrap; - _emberMetalCore.default.apply = _emberMetalUtils.apply; - _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr; - _emberMetalCore.default.uuid = _emberMetalUtils.uuid; - - _emberMetalCore.default.Logger = _emberMetalLogger.default; - - _emberMetalCore.default.get = _emberMetalProperty_get.get; - _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault; - _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple; - _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath; - - _emberMetalCore.default.on = _emberMetalEvents.on; - _emberMetalCore.default.addListener = _emberMetalEvents.addListener; - _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener; - _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener; - _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners; - _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent; - _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners; - _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents; - _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor; - _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners; - - _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default; - - _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange; - _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange; - _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains; - _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges; - _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges; - _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties; - - _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty; - - _emberMetalCore.default.set = _emberMetalProperty_set.set; - _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet; - - _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet; - _emberMetalCore.default.Map = _emberMetalMap.Map; - _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault; - - _emberMetalCore.default.getProperties = _emberMetalGet_properties.default; - _emberMetalCore.default.setProperties = _emberMetalSet_properties.default; - - _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey; - _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey; - - _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains; - _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher; - _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode; - _emberMetalCore.default.finishChains = _emberMetalChains.finishChains; - - _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath; - _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath; - - _emberMetalCore.default.watch = _emberMetalWatching.watch; - _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching; - _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch; - _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch; - _emberMetalCore.default.destroy = _emberMetalWatching.destroy; - - _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default; - - _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty; - _emberMetalCore.default.computed = _emberMetalComputed.computed; - _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor; - - _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver; - _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor; - _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver; - _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver; - _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers; - - _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING; - _emberMetalCore.default.required = _emberMetalMixin.required; - _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod; - _emberMetalCore.default.observer = _emberMetalMixin.observer; - _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver; - _emberMetalCore.default.mixin = _emberMetalMixin.mixin; - _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin; - - _emberMetalCore.default.bind = _emberMetalBinding.bind; - _emberMetalCore.default.Binding = _emberMetalBinding.Binding; - _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath; - - _emberMetalCore.default.run = _emberMetalRun_loop.default; - - /** - @class Backburner - @for Ember - @private - */ - _emberMetalCore.default.Backburner = _backburner.default; - // this is the new go forward, once Ember Data updates to using `_Backburner` we - // can remove the non-underscored version. - _emberMetalCore.default._Backburner = _backburner.default; - - _emberMetalCore.default.libraries = new _emberMetalLibraries.default(); - _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION); - - _emberMetalCore.default.isNone = _emberMetalIs_none.default; - _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default; - _emberMetalCore.default.isBlank = _emberMetalIs_blank.default; - _emberMetalCore.default.isPresent = _emberMetalIs_present.default; - - _emberMetalCore.default.merge = _emberMetalMerge.default; - - _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES; - _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default; - - /** - A function may be assigned to `Ember.onerror` to be called when Ember - internals encounter an error. This is useful for specialized error handling - and reporting code. - - ```javascript - Ember.onerror = function(error) { - Em.$.ajax('/report-error', 'POST', { - stack: error.stack, - otherInformation: 'whatever app state you want to provide' - }); - }; - ``` - - Internally, `Ember.onerror` is used as Backburner's error handler. - - @event onerror - @for Ember - @param {Exception} error the error object - @public - */ - _emberMetalCore.default.onerror = null; - // END EXPORTS - - // do this for side-effects of updating Ember.assert, warn, etc when - // ember-debug is present - // This needs to be called before any deprecateFunc - if (_emberMetalCore.default.__loader.registry['ember-debug']) { - requireModule('ember-debug'); - } else { - _emberMetalCore.default.Debug = {}; - - _emberMetalCore.default.Debug.registerDeprecationHandler = function () {}; - _emberMetalCore.default.Debug.registerWarnHandler = function () {}; - } - - _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create); - _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys); - - exports.default = _emberMetalCore.default; -}); -enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) { - /** - @module ember @submodule ember-template-compiler */ 'use strict'; var compile, compileSpec; exports.default = function (string) { - if ((!compile || !compileSpec) && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) { - var Compiler = requireModule('htmlbars-compiler/compiler'); + if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) { + var Compiler = _require.default('htmlbars-compiler/compiler'); compile = Compiler.compile; compileSpec = Compiler.compileSpec; } @@ -11633,10 +11686,38 @@ 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-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/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) { + 'use strict'; + + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default); + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default); + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default); + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default); + _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); + + if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) { + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default); + } else { + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default); + _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default); + } + + exports._Ember = _emberMetal.default; + exports.precompile = _emberTemplateCompilerSystemPrecompile.default; + exports.compile = _emberTemplateCompilerSystemCompile.default; + exports.template = _emberTemplateCompilerSystemTemplate.default; + exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin; +}); + +// used for adding Ember.Handlebars.compile for backwards compat enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) { 'use strict'; function AssertNoViewAndControllerPaths(options) { // set later within HTMLBars to the syntax package @@ -12576,11 +12657,11 @@ } return moduleInfo; } }); -enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) { +enifed('ember-template-compiler/system/compile', ['exports', 'require', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _require, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) { /** @module ember @submodule ember-template-compiler */ @@ -12598,12 +12679,12 @@ @param {String} templateString This is the string to be compiled by HTMLBars. @param {Object} options This is an options hash to augment the compiler options. */ exports.default = function (templateString, options) { - if (!compile && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) { - compile = requireModule('htmlbars-compiler/compiler').compile; + if (!compile && _require.has('htmlbars-compiler/compiler')) { + compile = _require.default('htmlbars-compiler/compiler').compile; } if (!compile) { throw new Error('Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.'); } @@ -12651,11 +12732,11 @@ options.plugins = plugins; options.buildMeta = function buildMeta(program) { return { fragmentReason: fragmentReason(program), - revision: 'Ember@2.3.2', + revision: 'Ember@2.4.0-beta.2', loc: program.loc, moduleName: options.moduleName }; }; @@ -12717,11 +12798,11 @@ } else { return false; } } }); -enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) { +enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) { /** @module ember @submodule ember-template-compiler */ 'use strict'; @@ -12738,12 +12819,12 @@ @method precompile @param {String} templateString This is the string to be compiled by HTMLBars. */ exports.default = function (templateString, options) { - if (!compileSpec && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) { - compileSpec = requireModule('htmlbars-compiler/compiler').compileSpec; + if (!compileSpec && _require.has('htmlbars-compiler/compiler')) { + compileSpec = _require.default('htmlbars-compiler/compiler').compileSpec; } if (!compileSpec) { throw new Error('Cannot call `compileSpec` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compileSpec`.'); } @@ -12777,37 +12858,9 @@ templateSpec.isMethod = false; return templateSpec; }; }); -enifed('ember-template-compiler', ['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-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/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) { - 'use strict'; - - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default); - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default); - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default); - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default); - _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); - - if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) { - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default); - } else { - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default); - _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default); - } - - exports._Ember = _emberMetal.default; - exports.precompile = _emberTemplateCompilerSystemPrecompile.default; - exports.compile = _emberTemplateCompilerSystemCompile.default; - exports.template = _emberTemplateCompilerSystemTemplate.default; - exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin; -}); - -// used for adding Ember.Handlebars.compile for backwards compat enifed("htmlbars-compiler/compiler", ["exports", "htmlbars-syntax/parser", "htmlbars-compiler/template-compiler", "htmlbars-runtime/hooks", "htmlbars-runtime/render"], function (exports, _htmlbarsSyntaxParser, _htmlbarsCompilerTemplateCompiler, _htmlbarsRuntimeHooks, _htmlbarsRuntimeRender) { /*jshint evil:true*/ "use strict"; exports.compileSpec = compileSpec; \ No newline at end of file