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++) {