http://codereview.appspot.com/157093/diff/1/5 File src/com/google/caja/cajita.js (right):
http://codereview.appspot.com/157093/diff/1/5#newcode98 src/com/google/caja/cajita.js:98: if (end === void 0) { end = self.length; } Ok, so bug 1162 says that not supplying start doesn't cause problemsm but supplying undefined for end screws up firefox iff start is supplied. Is there a reason not to infer 0 for start as well? http://codereview.appspot.com/157093/diff/1/4 File src/com/google/caja/plugin/bridal.js (right): http://codereview.appspot.com/157093/diff/1/4#newcode136 src/com/google/caja/plugin/bridal.js:136: bridal.setAttribute(clone, attr.nodeName, attr.nodeValue); cool http://codereview.appspot.com/157093/diff/1/2 File tests/com/google/caja/plugin/domita_test.html (right): http://codereview.appspot.com/157093/diff/1/2#newcode69 tests/com/google/caja/plugin/domita_test.html:69: s.text = 'globalSideEffect()'; why text? not nodeValue or innerHTML? http://codereview.appspot.com/157093/diff/1/2#newcode167 tests/com/google/caja/plugin/domita_test.html:167: bridal.setAttribute(e, 'class', 'readytotest'); OK http://codereview.appspot.com/157093/diff/1/3 File tests/com/google/caja/plugin/domita_test_untrusted.html (right): http://codereview.appspot.com/157093/diff/1/3#newcode119 tests/com/google/caja/plugin/domita_test_untrusted.html:119: <p>After <code>document.write</code></p> This shouldn't cause a bug. If it does, it's a bug in the Parser. http://codereview.appspot.com/157093/diff/1/3#newcode659 tests/com/google/caja/plugin/domita_test_untrusted.html:659: var name = m[1].toLowerCase(); OK http://codereview.appspot.com/157093/diff/1/3#newcode1014 tests/com/google/caja/plugin/domita_test_untrusted.html:1014: var html = el.innerHTML.replace(new RegExp('[\\r\\n]\\s*', 'g'), ''); I'm fine if this is aggressive canonicalization since we're not testing whitespace here, but aren't newlines and spaces usually collapsed to a single space? http://codereview.appspot.com/157093/diff/1/3#newcode1828 tests/com/google/caja/plugin/domita_test_untrusted.html:1828: //assertArray([9], Array.slice([9], null, void 0), '([9], null, void 0)'); I'm confused. Do we correct the problem and follow ES5? Is there a bug filed against firefox? http://codereview.appspot.com/157093/diff/1/3#newcode2388 tests/com/google/caja/plugin/domita_test_untrusted.html:2388: { nodeName: 'class', nodeValue: 'cloneable' } cool http://codereview.appspot.com/157093/diff/1/3#newcode2411 tests/com/google/caja/plugin/domita_test_untrusted.html:2411: { nodeName: 'for', nodeValue: 'x' } cool http://codereview.appspot.com/157093/diff/1/3#newcode3173 tests/com/google/caja/plugin/domita_test_untrusted.html:3173: + ' usemap="#foo-xyz___"' cool http://codereview.appspot.com/157093
