rem: Object.extend(Element.Methods, methods || {}); 
add: var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;  if (!methods) { Object.extend(Form, Form.Methods); Object.extend(Form.Element, Form.Element.Methods); Object.extend(Element.Methods.ByTag, { "FORM":     Object.clone(Form.Methods), "INPUT":    Object.clone(Form.Element.Methods), "SELECT":   Object.clone(Form.Element.Methods), "TEXTAREA": Object.clone(Form.Element.Methods) }); }  if (arguments.length == 2) { var tagName = methods; methods = arguments[1]; }  if (!tagName) Object.extend(Element.Methods, methods || { }); else { if (Object.isArray(tagName)) tagName.each(extend); else extend(tagName); }  function extend(tagName) { tagName = tagName.toUpperCase(); if (!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName] = { }; Object.extend(Element.Methods.ByTag[tagName], methods); } 
context: Element.addMethods = function(methods) {  Object.extend(Element.Methods, methods || {});  function copy(methods, destination, onlyIfAbsent) {    onlyIfAbsent = onlyIfAbsent || false;    var cache = Element.extend.cache;    for (var property in methods) {      var value = methods[property];      if (!onlyIfAbsent || !(property in destination))        destination[property] = cache.findOrStore(value);    }  }  if (typeof HTMLElement != 'undefined') {    copy(Element.Methods, HTMLElement.prototype);    copy(Element.Methods.Simulated, HTMLElement.prototype, true);    copy(Form.Methods, HTMLFormElement.prototype);    [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function(klass) {      copy(Form.Element.Methods, klass.prototype);    });    _nativeExtensions = true;  }}
meta: 8434	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8434/6873fc8026e87544ee93e0d9551ae57083313cff/prototype.js/buggy/vendor/rails/actionpack/lib/action_view/helpers/javascripts/prototype.js