Skip to content

Commit 63466a4

Browse files
committed
Release v2.10.0.
1 parent 8031323 commit 63466a4

File tree

12 files changed

+3526
-2258
lines changed

12 files changed

+3526
-2258
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ember",
3-
"version": "2.10.0-beta.3",
3+
"version": "2.10.0",
44
"license": "MIT",
55
"homepage": "https://github.com/emberjs/ember.js",
66
"main": [

component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ember",
33
"repo": "components/ember",
4-
"version": "2.10.0-beta.3",
4+
"version": "2.10.0",
55
"license": "MIT",
66
"homepage": "https://github.com/emberjs/ember.js",
77
"main": "ember.debug.js",

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@
2525
}
2626
}
2727
},
28-
"version": "2.10.0-beta.3"
28+
"version": "2.10.0"
2929
}

ember-docs.json

Lines changed: 99 additions & 80 deletions
Large diffs are not rendered by default.

ember-runtime.js

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
77
* @license Licensed under MIT license
88
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
9-
* @version 2.10.0-beta.3
9+
* @version 2.10.0
1010
*/
1111

12-
var enifed, requireModule, require, Ember;
12+
var enifed, requireModule, Ember;
1313
var mainContext = this;
1414

1515
(function() {
@@ -40,14 +40,14 @@ var mainContext = this;
4040
registry[name] = value;
4141
};
4242

43-
require = requireModule = function(name) {
43+
requireModule = function(name) {
4444
return internalRequire(name, null);
4545
};
4646

4747
// setup `require` module
48-
require['default'] = require;
48+
requireModule['default'] = requireModule;
4949

50-
require.has = function registryHas(moduleName) {
50+
requireModule.has = function registryHas(moduleName) {
5151
return !!registry[moduleName] || !!registry[moduleName + '/index'];
5252
};
5353

@@ -88,7 +88,7 @@ var mainContext = this;
8888
if (deps[i] === 'exports') {
8989
reified[i] = exports;
9090
} else if (deps[i] === 'require') {
91-
reified[i] = require;
91+
reified[i] = requireModule;
9292
} else {
9393
reified[i] = internalRequire(deps[i], name);
9494
}
@@ -103,12 +103,12 @@ var mainContext = this;
103103

104104
Ember.__loader = {
105105
define: enifed,
106-
require: require,
106+
require: requireModule,
107107
registry: registry
108108
};
109109
} else {
110110
enifed = Ember.__loader.define;
111-
require = requireModule = Ember.__loader.require;
111+
requireModule = Ember.__loader.require;
112112
}
113113
})();
114114

@@ -4018,7 +4018,7 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
40184018
var args = [];
40194019

40204020
function addArg(property) {
4021-
_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' });
4021+
_emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + ('You used the key "' + property + '" which is invalid. ') + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
40224022
args.push(property);
40234023
}
40244024

@@ -5092,6 +5092,25 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/debug'], functi
50925092
function expandProperties(pattern, callback) {
50935093
_emberMetalDebug.assert('A computed property key must be a string', typeof pattern === 'string');
50945094
_emberMetalDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
5095+
_emberMetalDebug.assert('Brace expanded properties have to be balanced and cannot be nested, pattern: ' + pattern, (function (str) {
5096+
var inBrace = 0;
5097+
var char = undefined;
5098+
for (var i = 0; i < str.length; i++) {
5099+
char = str.charAt(i);
5100+
5101+
if (char === '{') {
5102+
inBrace++;
5103+
} else if (char === '}') {
5104+
inBrace--;
5105+
}
5106+
5107+
if (inBrace > 1 || inBrace < 0) {
5108+
return false;
5109+
}
5110+
}
5111+
5112+
return true;
5113+
})(pattern));
50955114

50965115
var parts = pattern.split(SPLIT_REGEX);
50975116
var properties = [parts];
@@ -8975,6 +8994,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
89758994
_emberMetalDebug.assert('Cannot call get with \'' + keyName + '\' on an undefined object.', obj !== undefined && obj !== null);
89768995
_emberMetalDebug.assert('The key provided to get must be a string, you passed ' + keyName, typeof keyName === 'string');
89778996
_emberMetalDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
8997+
_emberMetalDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
89788998

89798999
var value = obj[keyName];
89809000
var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
@@ -16342,16 +16362,20 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-r
1634216362
});
1634316363

1634416364
return promise.then(function (value) {
16345-
_emberMetal.setProperties(proxy, {
16346-
content: value,
16347-
isFulfilled: true
16348-
});
16365+
if (!proxy.isDestroyed && !proxy.isDestroying) {
16366+
_emberMetal.setProperties(proxy, {
16367+
content: value,
16368+
isFulfilled: true
16369+
});
16370+
}
1634916371
return value;
1635016372
}, function (reason) {
16351-
_emberMetal.setProperties(proxy, {
16352-
reason: reason,
16353-
isRejected: true
16354-
});
16373+
if (!proxy.isDestroyed && !proxy.isDestroying) {
16374+
_emberMetal.setProperties(proxy, {
16375+
reason: reason,
16376+
isRejected: true
16377+
});
16378+
}
1635516379
throw reason;
1635616380
}, 'Ember: PromiseProxy');
1635716381
}
@@ -19243,7 +19267,8 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
1924319267
'[object Array]': 'array',
1924419268
'[object Date]': 'date',
1924519269
'[object RegExp]': 'regexp',
19246-
'[object Object]': 'object'
19270+
'[object Object]': 'object',
19271+
'[object FileList]': 'filelist'
1924719272
};
1924819273

1924919274
var toString = Object.prototype.toString;
@@ -19312,6 +19337,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
1931219337
| 'array' | An instance of Array |
1931319338
| 'regexp' | An instance of RegExp |
1931419339
| 'date' | An instance of Date |
19340+
| 'filelist' | An instance of FileList |
1931519341
| 'class' | An Ember class (created using Ember.Object.extend()) |
1931619342
| 'instance' | An Ember object instance |
1931719343
| 'error' | An instance of the Error object |
@@ -19333,6 +19359,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
1933319359
Ember.typeOf([1, 2, 90]); // 'array'
1933419360
Ember.typeOf(/abc/); // 'regexp'
1933519361
Ember.typeOf(new Date()); // 'date'
19362+
Ember.typeOf(event.target.files); // 'filelist'
1933619363
Ember.typeOf(Ember.Object.extend()); // 'class'
1933719364
Ember.typeOf(Ember.Object.create()); // 'instance'
1933819365
Ember.typeOf(new Error('teamocil')); // 'error'
@@ -19382,7 +19409,7 @@ enifed("ember/features", ["exports"], function (exports) {
1938219409
enifed("ember/version", ["exports"], function (exports) {
1938319410
"use strict";
1938419411

19385-
exports.default = "2.10.0-beta.3";
19412+
exports.default = "2.10.0";
1938619413
});
1938719414
/*!
1938819415
* @overview RSVP - a tiny implementation of Promises/A+.

0 commit comments

Comments
 (0)