prototype/src/prototype.js

102 lines
2.7 KiB
JavaScript
Raw Normal View History

2007-01-18 22:24:27 +00:00
<%= include 'HEADER' %>
var Prototype = {
Version: '<%= PROTOTYPE_VERSION %>',
Browser: {
IE: !!(window.attachEvent &&
navigator.userAgent.indexOf('Opera') === -1),
Opera: navigator.userAgent.indexOf('Opera') > -1,
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
navigator.userAgent.indexOf('KHTML') === -1,
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
},
2007-01-18 22:24:27 +00:00
BrowserFeatures: {
XPath: !!document.evaluate,
SelectorsAPI: !!document.querySelector,
ElementExtensions: (function() {
if (window.HTMLElement && window.HTMLElement.prototype)
return true;
if (window.Element && window.Element.prototype)
return true;
})(),
SpecificElementExtensions: (function() {
// First, try the named class
if (typeof window.HTMLDivElement !== 'undefined')
return true;
var div = document.createElement('div');
if (div['__proto__'] && div['__proto__'] !==
document.createElement('form')['__proto__']) {
return true;
}
return false;
})()
2007-01-18 22:24:27 +00:00
},
ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
emptyFunction: function() { },
2007-01-18 22:24:27 +00:00
K: function(x) { return x }
};
if (Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions = false;
2008-12-11 10:42:15 +00:00
var Abstract = { };
2008-12-14 04:36:59 +00:00
/**
* == lang ==
* Language extensions.
**/
/** section: lang
* Try
**/
/**
* Try.these(function...) -> ?
* - function (Function): A function that may throw an exception.
* Accepts an arbitrary number of functions and returns the result of the
* first one that doesn't throw an error.
**/
2008-12-11 10:42:15 +00:00
var Try = {
these: function() {
var returnValue;
for (var i = 0, length = arguments.length; i < length; i++) {
var lambda = arguments[i];
try {
returnValue = lambda();
break;
} catch (e) { }
}
return returnValue;
}
};
2008-12-11 10:45:10 +00:00
<%= include 'lang/class.js', 'lang/object.js', 'lang/function.js' %>
2007-01-18 22:24:27 +00:00
2008-12-11 10:45:10 +00:00
<%= include 'lang/date.js', 'lang/regexp.js', 'lang/periodical_executer.js' %>
2007-01-18 22:24:27 +00:00
2008-12-11 10:45:10 +00:00
<%= include 'lang/string.js', 'lang/template.js' %>
2007-01-18 22:24:27 +00:00
2008-12-11 10:45:10 +00:00
<%= include 'lang/enumerable.js', 'lang/array.js', 'lang/hash.js' %>
<%= include 'lang/number.js', 'lang/range.js' %>
<%= include 'ajax/ajax.js', 'ajax/responders.js', 'ajax/base.js', 'ajax/request.js', 'ajax/response.js' %>
<%= include 'ajax/updater.js', 'ajax/periodical_updater.js' %>
<%= include 'dom/dom.js', 'dom/selector.js', 'dom/form.js', 'dom/event.js' %>
<%= include 'deprecated.js' %>
2007-01-18 22:24:27 +00:00
Element.addMethods();