aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIgor Minar2011-01-09 23:21:48 -0800
committerIgor Minar2011-01-10 10:24:12 -0800
commit84dedb81e79a56b4c81fe413a41e7247d8fa0572 (patch)
treee46e58cd4890ff4607d47a85546417db57ded735 /src
parente99974004480d968d3fe37ee57540e72bbc96098 (diff)
downloadangular.js-84dedb81e79a56b4c81fe413a41e7247d8fa0572.tar.bz2
jqLite should recognize window as an element even in IE
in IE window object has length property which makes it look like a collection to jqLite. This commit makes jqLite properly identify window as an element even in IE. IE6 doesn't have Window type, so we need to check against window object and only then do a more general check against Window. This is not perfect, but I say screw IE6.
Diffstat (limited to 'src')
-rw-r--r--src/Angular.js11
-rw-r--r--src/jqLite.js2
2 files changed, 12 insertions, 1 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 8ada7be6..060e08c1 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -400,6 +400,17 @@ function isArray(value) { return value instanceof Array; }
function isFunction(value){ return typeof value == $function;}
+/**
+ * Checks if `obj` is a window object.
+ *
+ * @private
+ * @param {*} obj Object to check
+ * @returns {boolean} True if `obj` is a window obj.
+ */
+function isWindow(obj) {
+ return obj && obj.document && obj.location && obj.alert && obj.setInterval;
+}
+
function isBoolean(value) { return typeof value == $boolean;}
function isTextNode(node) { return nodeName_(node) == '#text'; }
function trim(value) { return isString(value) ? value.replace(/^\s*/, '').replace(/\s*$/, '') : value; }
diff --git a/src/jqLite.js b/src/jqLite.js
index 0f6bed2d..cbba69ad 100644
--- a/src/jqLite.js
+++ b/src/jqLite.js
@@ -47,7 +47,7 @@ function getStyle(element) {
}
function JQLite(element) {
- if (!isElement(element) && isDefined(element.length) && element.item) {
+ if (!isElement(element) && isDefined(element.length) && element.item && !isWindow(element)) {
for(var i=0; i < element.length; i++) {
this[i] = element[i];
}