Author: nbelaevski
Date: 2008-06-20 15:31:34 -0400 (Fri, 20 Jun 2008)
New Revision: 9152
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
Log:
RendererUtils.escapeJavaScript() method updated
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java 2008-06-20
19:31:02 UTC (rev 9151)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java 2008-06-20
19:31:34 UTC (rev 9152)
@@ -949,16 +949,34 @@
public String escapeJavaScript(Object o) {
if (o != null) {
+ StringBuilder result = new StringBuilder();
JSEncoder encoder = new JSEncoder();
- StringBuilder result = new StringBuilder();
- String string = o.toString();
- int length = string.length();
+
+ char chars[] = o.toString().toCharArray();
+ int start = 0;
+ int end = chars.length;
+ for (int x = start; x < end; x++) {
+ char c = chars[x];
+
+ if (encoder.compile(c)) {
+ continue;
+ }
+
+ if (start != x) {
+ result.append(chars, start, x - start );
+ }
+
+ result.append(encoder.encode(c));
+ start = x + 1;
+
+ continue;
+ }
- for (int i = 0; i < length; i++) {
- result.append(encoder.encode(string.charAt(i)));
- }
-
- return result.toString();
+ if (start != end) {
+ result.append(chars, start, end - start);
+ }
+
+ return result.toString();
} else {
return null;
}
Show replies by date