Merge branch 'master' of git@github.com:sstephenson/prototype
This commit is contained in:
commit
77db1f9107
|
@ -1,3 +1,7 @@
|
|||
* Make sure try/catch/finally is used instead of try/finally for clients without support for the latter one (e.g. Blackberry, IE) (Ville Koskinen, kangax)
|
||||
|
||||
* Use `in` operator when accessing property of a nodelist to prevent Safari <=2.0.4 from crashing (kangax)
|
||||
|
||||
* Add Element#clone as a safe wrapper of native `cloneNode`. (Andrew Dupont, kangax)
|
||||
|
||||
* Add tests to ensure IE8 properly assigns a class name in the `Element` constructor. [#529 state:resolved] (Riki Fridrich, Andrew Dupont)
|
||||
|
|
|
@ -8,27 +8,14 @@
|
|||
**/
|
||||
function $A(iterable) {
|
||||
if (!iterable) return [];
|
||||
if (iterable.toArray) return iterable.toArray();
|
||||
// Safari <2.0.4 crashes when accessing property of a node list with property accessor.
|
||||
// It nevertheless works fine with `in` operator, which is why we use it here
|
||||
if ('toArray' in iterable) return iterable.toArray();
|
||||
var length = iterable.length || 0, results = new Array(length);
|
||||
while (length--) results[length] = iterable[length];
|
||||
return results;
|
||||
}
|
||||
|
||||
if (Prototype.Browser.WebKit) {
|
||||
$A = function(iterable) {
|
||||
if (!iterable) return [];
|
||||
// In Safari, only use the `toArray` method if it's not a NodeList.
|
||||
// A NodeList is a function, has an function `item` property, and a numeric
|
||||
// `length` property. Adapted from Google Doctype.
|
||||
if (!(typeof iterable === 'function' && typeof iterable.length ===
|
||||
'number' && typeof iterable.item === 'function') && iterable.toArray)
|
||||
return iterable.toArray();
|
||||
var length = iterable.length || 0, results = new Array(length);
|
||||
while (length--) results[length] = iterable[length];
|
||||
return results;
|
||||
};
|
||||
}
|
||||
|
||||
/** section: Language, related to: Array
|
||||
* $w(string) -> Array
|
||||
* - string (String): A string with zero or more spaces.
|
||||
|
|
|
@ -52,9 +52,12 @@ var PeriodicalExecuter = Class.create({
|
|||
try {
|
||||
this.currentlyExecuting = true;
|
||||
this.execute();
|
||||
} finally {
|
||||
} catch(e) {
|
||||
/* empty catch for clients that don't support try/finally */
|
||||
}
|
||||
finally {
|
||||
this.currentlyExecuting = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue