Bug 387465 - Incorrect string evaluations with Rhino 1.7R4
diff --git a/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/debugger/StackFrame.java b/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/debugger/StackFrame.java
index e978f6a..250df27 100644
--- a/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/debugger/StackFrame.java
+++ b/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/debugger/StackFrame.java
@@ -178,7 +178,7 @@
RhinoDebuggerImpl rhinoDebugger = (RhinoDebuggerImpl) context.getDebugger();
rhinoDebugger.disableThread();
- Context evalContext = context.getFactory().enter();
+ Context evalContext = context.getFactory().enterContext();
Debugger debugger = evalContext.getDebugger();
Object debuggerContextData = evalContext.getDebuggerContextData();
evalContext.setDebugger(null, null);
@@ -207,7 +207,7 @@
RhinoDebuggerImpl rhinoDebugger = (RhinoDebuggerImpl) context.getDebugger();
rhinoDebugger.disableThread();
- Context evalContext = context.getFactory().enter();
+ Context evalContext = context.getFactory().enterContext();
Debugger debugger = evalContext.getDebugger();
Object debuggerContextData = evalContext.getDebuggerContextData();
evalContext.setDebugger(null, null);
@@ -234,7 +234,7 @@
RhinoDebuggerImpl rhinoDebugger = (RhinoDebuggerImpl) context.getDebugger();
rhinoDebugger.disableThread();
- Context lookupContext = context.getFactory().enter();
+ Context lookupContext = context.getFactory().enterContext();
Debugger debugger = lookupContext.getDebugger();
Object debuggerContextData = lookupContext.getDebuggerContextData();
lookupContext.setDebugger(null, null);
@@ -286,7 +286,7 @@
} else if (object instanceof Number) {
Object value = (object == ScriptRuntime.NaNobj) ? null : object;
serializeSimpleType(value, JSONConstants.NUMBER, result);
- } else if (object instanceof String) {
+ } else if (object instanceof CharSequence) {
serializeSimpleType(object, JSONConstants.STRING, result);
} else if (object instanceof Scriptable) {
Scriptable scriptable = (Scriptable) object;
diff --git a/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/transport/JSONUtil.java b/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/transport/JSONUtil.java
index fe4ea07..9597a2c 100644
--- a/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/transport/JSONUtil.java
+++ b/bundles/org.eclipse.wst.jsdt.debug.rhino.debugger/src/org/eclipse/wst/jsdt/debug/internal/rhino/transport/JSONUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others All rights reserved. This
+ * Copyright (c) 2010, 2012 IBM Corporation and others All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@@ -365,8 +365,8 @@
buffer.append(value.toString());
else if (value instanceof Number)
writeNumber((Number) value, buffer);
- else if (value instanceof String)
- writeString((String) value, buffer);
+ else if (value instanceof CharSequence)
+ writeCharSequence((CharSequence) value, buffer);
else if (value instanceof Collection)
writeArray((Collection) value, buffer);
else if (value instanceof Map)
@@ -399,7 +399,7 @@
Object key = iterator.next();
if (!(key instanceof String))
throw error("Map keys must be an instance of String but was '" + key.getClass().getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$););
- writeString((String) key, buffer);
+ writeCharSequence((CharSequence) key, buffer);
buffer.append(':');
writeValue(map.get(key), buffer);
buffer.append(',');
@@ -422,7 +422,7 @@
buffer.append(']');
}
- private static void writeString(String string, StringBuffer buffer) {
+ private static void writeCharSequence(CharSequence string, StringBuffer buffer) {
buffer.append('"');
int length = string.length();
for (int i = 0; i < length; i++) {