Ha. I thought this too. There is nothing wrong with things like ...
if (a = b) { }
Sure, in a lot of cases, beginners will make this mistake, but this is
perfectly valid code.
The extra () are not required. The warnings you are getting in FF are
simply because it it suggesting that maybe the newbie coded badly.
The "newbie" isn't and didn't and wish FF would shut up!
On 11/07/07, goutnet <[EMAIL PROTECTED]> wrote:
>
> I attach (copy/paste) a patch to make last prototype.js warning free
> under latest firefox
>
> I hope it will be usefull to some others
>
> (please correct me if I made any mistake)
>
> Florian Delizy
>
> Index: prototype.js
> ===================================================================
> --- prototype.js (r�vision 444)
> +++ prototype.js (copie de travail)
> @@ -65,12 +65,12 @@
> switch(type) {
> case 'undefined':
> case 'function':
> - case 'unknown': return;
> + case 'unknown': return '';
> case 'boolean': return object.toString();
> }
> if (object === null) return 'null';
> if (object.toJSON) return object.toJSON();
> - if (object.ownerDocument === document) return;
> + if (object.ownerDocument === document) return '';
> var results = [];
> for (var property in object) {
> var value = Object.toJSON(object[property]);
> @@ -106,7 +106,7 @@
> }
> }
>
> -Function.prototype.bindAsEventListener = function(object) {
> +Function.prototype.bindAsEventListener = function(object_) {
> var __method = this, args = $A(arguments), object = args.shift();
> return function(event) {
> return __method.apply(object, [event ||
> window.event].concat(args));
> @@ -215,7 +215,7 @@
> replacement = arguments.callee.prepareReplacement(replacement);
>
> while (source.length > 0) {
> - if (match = source.match(pattern)) {
> + if ((match = source.match(pattern))) {
> result += source.slice(0, match.index);
> result += String.interpret(replacement(match));
> source = source.slice(match.index + match[0].length);
> @@ -470,7 +470,7 @@
> any: function(iterator) {
> var result = false;
> this.each(function(value, index) {
> - if (result = !!(iterator || Prototype.K)(value, index))
> + if ((result = !!(iterator || Prototype.K)(value, index)))
> throw $break;
> });
> return result;
> @@ -895,7 +895,7 @@
> iterator(pair);
> }
> };
> -ObjectRange = Class.create();
> +var ObjectRange = Class.create();
> Object.extend(ObjectRange.prototype, Enumerable);
> Object.extend(ObjectRange.prototype, {
> initialize: function(start, end, exclusive) {
> @@ -1019,7 +1019,7 @@
>
> this.parameters = params;
>
> - if (params = Hash.toQueryString(params)) {
> + if ((params = Hash.toQueryString(params))) {
> // when GET, append parameters to URL
> if (this.method == 'get')
> this.url += (this.url.include('?') ? '&' : '?') + params;
> @@ -1151,6 +1151,7 @@
> } catch (e) {
> this.dispatchException(e);
> }
> + return '';
> },
>
> dispatchException: function(exception) {
> @@ -1186,7 +1187,7 @@
>
> if (!this.options.evalScripts) response =
> response.stripScripts();
>
> - if (receiver = $(receiver)) {
> + if ((receiver = $(receiver))) {
> if (this.options.insertion)
> new this.options.insertion(receiver, response);
> else
> @@ -1382,7 +1383,7 @@
> recursivelyCollect: function(element, property) {
> element = $(element);
> var elements = [];
> - while (element = element[property])
> + while ((element = element[property]))
> if (element.nodeType == 1)
> elements.push(Element.extend(element));
> return elements;
> @@ -1495,7 +1496,7 @@
> },
>
> hasClassName: function(element, className) {
> - if (!(element = $(element))) return;
> + if (!(element = $(element))) return false;
> var elementClassName = element.className;
> if (elementClassName.length == 0) return false;
> if (elementClassName == className ||
> @@ -1505,19 +1506,19 @@
> },
>
> addClassName: function(element, className) {
> - if (!(element = $(element))) return;
> + if (!(element = $(element))) return '';
> Element.classNames(element).add(className);
> return element;
> },
>
> removeClassName: function(element, className) {
> - if (!(element = $(element))) return;
> + if (!(element = $(element))) return '';
> Element.classNames(element).remove(className);
> return element;
> },
>
> toggleClassName: function(element, className) {
> - if (!(element = $(element))) return;
> + if (!(element = $(element))) return '';
> Element.classNames(element)[element.hasClassName(className) ?
> 'remove' : 'add'](className);
> return element;
> },
> @@ -1551,7 +1552,7 @@
>
> descendantOf: function(element, ancestor) {
> element = $(element), ancestor = $(ancestor);
> - while (element = element.parentNode)
> + while ((element = element.parentNode))
> if (element == ancestor) return true;
> return false;
> },
> @@ -1696,7 +1697,7 @@
> if (!value && element.currentStyle) value =
> element.currentStyle[style];
>
> if (style == 'opacity') {
> - if (value = (element.getStyle('filter') || '').match(/alpha\
> (opacity=(.*)\)/))
> + if ((value = (element.getStyle('filter') || '').match(/alpha\
> (opacity=(.*)\)/)))
> if (value[1]) return parseFloat(value[1]) / 100;
> return 1.0;
> }
> @@ -2064,7 +2065,7 @@
> c = Selector.criteria, le, p, m;
>
> if (Selector._cache[e]) {
> - this.matcher = Selector._cache[e]; return;
> + this.matcher = Selector._cache[e]; return '';
> }
> this.matcher = ["this.matcher = function(root) {",
> "var r = root, h = Selector.handlers, c = false,
> n;"];
> @@ -2073,7 +2074,7 @@
> le = e;
> for (var i in ps) {
> p = ps[i];
> - if (m = e.match(p)) {
> + if ((m = e.match(p))) {
> this.matcher.push(typeof c[i] == 'function' ? c[i](m) :
> new Template(c[i]).evaluate(m));
> e = e.replace(m[0], '');
> @@ -2085,6 +2086,7 @@
> this.matcher.push("return h.unique(n);\n}");
> eval(this.matcher.join('\n'));
> Selector._cache[this.expression] = this.matcher;
> + return '';
> },
>
> compileXPathMatcher: function() {
> @@ -2099,7 +2101,7 @@
> while (e && le != e && (/\S/).test(e)) {
> le = e;
> for (var i in ps) {
> - if (m = e.match(ps[i])) {
> + if ((m = e.match(ps[i]))) {
> this.matcher.push(typeof x[i] == 'function' ? x[i](m) :
> new Template(x[i]).evaluate(m));
> e = e.replace(m[0], '');
> @@ -2174,15 +2176,15 @@
> 'checked': "[EMAIL PROTECTED]",
> 'disabled': "[EMAIL PROTECTED]",
> 'enabled': "[not(@disabled)]",
> - 'not': function(m) {
> - var e = m[6], p = Selector.patterns,
> + 'not': function(m_) {
> + var e = m_[6], p = Selector.patterns,
> x = Selector.xpath, le, m, v;
>
> var exclusion = [];
> while (e && le != e && (/\S/).test(e)) {
> le = e;
> for (var i in p) {
> - if (m = e.match(p[i])) {
> + if ((m = e.match(p[i]))) {
> v = typeof x[i] == 'function' ? x[i](m) : new
> Template(x[i]).evaluate(m);
> exclusion.push("(" + v.substring(1, v.length - 1) +
> ")");
> e = e.replace(m[0], '');
> @@ -2217,9 +2219,9 @@
> var mm, formula = m[6], predicate;
> if (formula == 'even') formula = '2n+0';
> if (formula == 'odd') formula = '2n+1';
> - if (mm = formula.match(/^(\d+)$/)) // digit only
> + if ((mm = formula.match(/^(\d+)$/))) // digit only
> return '[' + fragment + "= " + mm[1] + ']';
> - if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
> + if ((mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/))) { // an
> +b
> if (mm[1] == "-") mm[1] = -1;
> var a = mm[1] ? Number(mm[1]) : 1;
> var b = mm[2] ? Number(mm[2]) : 0;
> @@ -2228,6 +2230,7 @@
> return new Template(predicate).evaluate({
> fragment: fragment, a: a, b: b });
> }
> + return '';
> }
> }
> },
> @@ -2351,13 +2354,13 @@
> },
>
> nextElementSibling: function(node) {
> - while (node = node.nextSibling)
> + while ((node = node.nextSibling))
> if (node.nodeType == 1) return node;
> return null;
> },
>
> previousElementSibling: function(node) {
> - while (node = node.previousSibling)
> + while ((node = node.previousSibling))
> if (node.nodeType == 1) return node;
> return null;
> },
> @@ -2519,7 +2522,7 @@
> formula = Number(formula);
> for (var i = 0, node; node = nodes[i]; i++)
> if (node.nodeIndex == formula) results.push(node);
> - } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { //
> an+b
> + } else if ((m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)))
> { // an+b
> if (m[1] == "-") m[1] = -1;
> var a = m[1] ? Number(m[1]) : 1;
> var b = m[2] ? Number(m[2]) : 0;
> @@ -2598,8 +2601,8 @@
> return Selector.matchElements(elements, expression || '*')[index
> || 0];
> },
>
> - findChildElements: function(element, expressions) {
> - var exprs = expressions.join(','), expressions = [];
> + findChildElements: function(element, expressions_) {
> + var exprs = expressions_.join(','), expressions = [];
> exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,
> function(m) {
> expressions.push(m[1].strip());
> });
> @@ -3145,6 +3148,7 @@
> if (mode == 'horizontal')
> return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
> element.offsetWidth;
> + return 0;
> },
>
> page: function(forElement) {
> @@ -3159,7 +3163,7 @@
> if (element.offsetParent == document.body)
> if (Element.getStyle(element,'position')=='absolute') break;
>
> - } while (element = element.offsetParent);
> + } while ((element = element.offsetParent));
>
> element = forElement;
> do {
> @@ -3167,7 +3171,7 @@
> valueT -= element.scrollTop || 0;
> valueL -= element.scrollLeft || 0;
> }
> - } while (element = element.parentNode);
> + } while ((element = element.parentNode));
>
> return [valueL, valueT];
> },
> @@ -3268,4 +3272,4 @@
> }
> }
>
> -Element.addMethods();
> \ Pas de fin de ligne � la fin du fichier
> +Element.addMethods();
>
>
> >
>
--
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---