Skip to content
This repository was archived by the owner on Nov 11, 2017. It is now read-only.

Commit 2f2fe0b

Browse files
committed
Updated to 1.9.1
1 parent 55afc45 commit 2f2fe0b

File tree

2 files changed

+98
-14
lines changed

2 files changed

+98
-14
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ <h2>Welcome to Ember.js</h2>
2323

2424
<script src="js/libs/jquery-1.10.2.js"></script>
2525
<script src="js/libs/handlebars-v2.0.0.js"></script>
26-
<script src="js/libs/ember-1.9.0.js"></script>
26+
<script src="js/libs/ember-1.9.1.js"></script>
2727
<script src="js/app.js"></script>
2828
<!-- to activate the test runner, add the "?test" query string parameter -->
2929
<script src="tests/runner.js"></script>
Lines changed: 97 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
66
* @license Licensed under MIT license
77
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
8-
* @version 1.9.0
8+
* @version 1.9.1
99
*/
1010

1111
(function() {
@@ -6869,8 +6869,8 @@ enifed("ember-handlebars/ext",
68696869
}
68706870

68716871
Ember.assert(
6872-
fmt(path+" must be a subclass of Ember.View, not %@", [viewClass]),
6873-
View.detect(viewClass)
6872+
fmt(path+" must be a subclass or an instance of Ember.View, not %@", [viewClass]),
6873+
View.detect(viewClass) || View.detectInstance(viewClass)
68746874
);
68756875

68766876
return viewClass;
@@ -7188,8 +7188,8 @@ enifed("ember-handlebars/ext",
71887188
__exports__.handlebarsGet = handlebarsGet;
71897189
});
71907190
enifed("ember-handlebars/helpers/bind_attr",
7191-
["ember-metal/core","ember-handlebars-compiler","ember-metal/utils","ember-runtime/system/string","ember-metal/array","ember-views/views/view","ember-metal/keys","exports"],
7192-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
7191+
["ember-metal/core","ember-handlebars-compiler","ember-metal/utils","ember-runtime/system/string","ember-metal/array","ember-views/views/view","ember-metal/keys","ember-views/system/sanitize_attribute_value","exports"],
7192+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __exports__) {
71937193
"use strict";
71947194
/**
71957195
@module ember
@@ -7207,6 +7207,8 @@ enifed("ember-handlebars/helpers/bind_attr",
72077207
var View = __dependency6__["default"];
72087208
var keys = __dependency7__["default"];
72097209

7210+
var sanitizeAttributeValue = __dependency8__["default"];
7211+
72107212
var helpers = EmberHandlebars.helpers;
72117213
var SafeString = EmberHandlebars.SafeString;
72127214

@@ -7372,6 +7374,7 @@ enifed("ember-handlebars/helpers/bind_attr",
73727374

73737375
var lazyValue = view.getStream(path);
73747376
var value = lazyValue.value();
7377+
value = sanitizeAttributeValue(null, attr, value);
73757378
var type = typeOf(value);
73767379

73777380
Ember.assert(fmt("Attributes must be numbers, strings or booleans, not %@", [value]),
@@ -8960,13 +8963,19 @@ enifed("ember-handlebars/helpers/view",
89608963
helper: function(thisContext, newView, options) {
89618964
var data = options.data;
89628965
var fn = options.fn;
8966+
var newViewProto;
89638967

89648968
makeBindings(options);
89658969

89668970
var viewOptions = this.propertiesFromHTMLOptions(options, thisContext);
89678971
var currentView = data.view;
89688972
viewOptions.templateData = data;
8969-
var newViewProto = newView.proto();
8973+
8974+
if (View.detectInstance(newView)) {
8975+
newViewProto = newView;
8976+
} else {
8977+
newViewProto = newView.proto();
8978+
}
89708979

89718980
if (fn) {
89728981
Ember.assert("You cannot provide a template block if you also specified a templateName",
@@ -13134,7 +13143,7 @@ enifed("ember-metal/core",
1313413143

1313513144
@class Ember
1313613145
@static
13137-
@version 1.9.0
13146+
@version 1.9.1
1313813147
*/
1313913148

1314013149
if ('undefined' === typeof Ember) {
@@ -13161,10 +13170,10 @@ enifed("ember-metal/core",
1316113170
/**
1316213171
@property VERSION
1316313172
@type String
13164-
@default '1.9.0'
13173+
@default '1.9.1'
1316513174
@static
1316613175
*/
13167-
Ember.VERSION = '1.9.0';
13176+
Ember.VERSION = '1.9.1';
1316813177

1316913178
/**
1317013179
Standard environmental variables. You can define these in a global `EmberENV`
@@ -38957,7 +38966,8 @@ enifed("ember-views/streams/read",
3895738966
viewClass = value;
3895838967
}
3895938968

38960-
Ember.assert(fmt(value+" must be a subclass of Ember.View, not %@", [viewClass]), View.detect(viewClass));
38969+
Ember.assert(fmt(value+" must be a subclass or an instance of Ember.View, not %@", [viewClass]), View.detect(viewClass) || View.detectInstance(viewClass)
38970+
);
3896138971

3896238972
return viewClass;
3896338973
}
@@ -40055,6 +40065,62 @@ enifed("ember-views/system/renderer",
4005540065

4005640066
__exports__["default"] = EmberRenderer;
4005740067
});
40068+
enifed("ember-views/system/sanitize_attribute_value",
40069+
["ember-handlebars-compiler","exports"],
40070+
function(__dependency1__, __exports__) {
40071+
"use strict";
40072+
/* jshint scripturl:true */
40073+
40074+
var EmberHandlebars = __dependency1__["default"];
40075+
40076+
var parsingNode;
40077+
var badProtocols = {
40078+
'javascript:': true,
40079+
'vbscript:': true
40080+
};
40081+
40082+
var badTags = {
40083+
'A': true,
40084+
'BODY': true,
40085+
'LINK': true,
40086+
'IMG': true,
40087+
'IFRAME': true
40088+
};
40089+
40090+
var badAttributes = {
40091+
'href': true,
40092+
'src': true,
40093+
'background': true
40094+
};
40095+
__exports__.badAttributes = badAttributes;
40096+
__exports__["default"] = function sanitizeAttributeValue(element, attribute, value) {
40097+
var tagName;
40098+
40099+
if (!parsingNode) {
40100+
parsingNode = document.createElement('a');
40101+
}
40102+
40103+
if (!element) {
40104+
tagName = null;
40105+
} else {
40106+
tagName = element.tagName;
40107+
}
40108+
40109+
if (value instanceof EmberHandlebars.SafeString) {
40110+
return value.toString();
40111+
}
40112+
40113+
if ((tagName === null || badTags[tagName]) && badAttributes[attribute]) {
40114+
parsingNode.href = value;
40115+
40116+
if (badProtocols[parsingNode.protocol] === true) {
40117+
return 'unsafe:' + value;
40118+
}
40119+
}
40120+
40121+
return value;
40122+
}
40123+
});
4005840124
enifed("ember-views/system/utils",
4005940125
["exports"],
4006040126
function(__exports__) {
@@ -41756,8 +41822,8 @@ enifed("ember-views/views/states/pre_render",
4175641822
__exports__["default"] = preRender;
4175741823
});
4175841824
enifed("ember-views/views/view",
41759-
["ember-metal/core","ember-metal/platform","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/streams/simple","ember-views/streams/key_stream","ember-metal/streams/stream_binding","ember-views/streams/context_stream","ember-metal/is_none","ember-metal/deprecate_property","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","exports"],
41760-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __exports__) {
41825+
["ember-metal/core","ember-metal/platform","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/streams/simple","ember-views/streams/key_stream","ember-metal/streams/stream_binding","ember-views/streams/context_stream","ember-metal/is_none","ember-metal/deprecate_property","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","ember-views/system/sanitize_attribute_value","exports"],
41826+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __exports__) {
4176141827
"use strict";
4176241828
// Ember.assert, Ember.deprecate, Ember.warn, Ember.TEMPLATES,
4176341829
// Ember.K, jQuery, Ember.lookup,
@@ -41807,6 +41873,7 @@ enifed("ember-views/views/view",
4180741873
// for the side effect of extending Ember.run.queues
4180841874

4180941875
var CoreView = __dependency27__["default"];
41876+
var sanitizeAttributeValue = __dependency28__["default"];
4181041877

4181141878

4181241879
/**
@@ -43177,6 +43244,22 @@ enifed("ember-views/views/view",
4317743244
if (!this.removedFromDOM) { this.destroyElement(); }
4317843245
},
4317943246

43247+
/**
43248+
The HTML `id` of the view's element in the DOM. You can provide this
43249+
value yourself but it must be unique (just as in HTML):
43250+
43251+
```handlebars
43252+
{{my-component elementId="a-really-cool-id"}}
43253+
```
43254+
43255+
If not manually set a default value will be provided by the framework.
43256+
43257+
Once rendered an element's `elementId` is considered immutable and you
43258+
should never change it.
43259+
43260+
@property elementId
43261+
@type String
43262+
*/
4318043263
elementId: null,
4318143264

4318243265
/**
@@ -43980,7 +44063,8 @@ enifed("ember-views/views/view",
4398044063
// method.
4398144064
View.childViewsProperty = childViewsProperty;
4398244065

43983-
View.applyAttributeBindings = function(elem, name, value) {
44066+
View.applyAttributeBindings = function(elem, name, initialValue) {
44067+
var value = sanitizeAttributeValue(elem[0], name, initialValue);
4398444068
var type = typeOf(value);
4398544069

4398644070
// if this changes, also change the logic in ember-handlebars/lib/helpers/binding.js

0 commit comments

Comments
 (0)