* TImur debugger contributions applied.
diff --git a/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/console/ui/actions/ShowFunctionsAction.java b/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/console/ui/actions/ShowFunctionsAction.java
index cab2860..58e8507 100644
--- a/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/console/ui/actions/ShowFunctionsAction.java
+++ b/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/console/ui/actions/ShowFunctionsAction.java
@@ -10,8 +10,9 @@
*******************************************************************************/
package org.eclipse.dltk.javascript.internal.console.ui.actions;
-
import org.eclipse.debug.core.DebugException;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.debug.core.model.IScriptValue;
import org.eclipse.dltk.debug.core.model.IScriptVariable;
import org.eclipse.dltk.debug.ui.actions.ViewFilterAction;
import org.eclipse.dltk.javascript.internal.ui.preferences.JavaScriptConsolePreferences;
@@ -27,14 +28,21 @@
}
protected String getPreferenceKey() {
- return "show_functions";
+ return "show_functions";
}
-
+
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (element instanceof IScriptVariable) {
- IScriptVariable variable = (IScriptVariable)element;
- return !variable.getType().getName().equals("function");
+ IScriptVariable variable = (IScriptVariable) element;
+ try {
+ return !((IScriptValue) variable.getValue()).getType()
+ .getName().equals("function");
+ } catch (DebugException e) {
+ if (DLTKCore.DEBUG) {
+ e.printStackTrace();
+ }
+ }
}
return true;
- }
+ }
}
diff --git a/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/debug/ui/JavaScriptDebugModelPresentation.java b/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/debug/ui/JavaScriptDebugModelPresentation.java
index f28741b..38e0764 100644
--- a/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/debug/ui/JavaScriptDebugModelPresentation.java
+++ b/plugins/org.eclipse.dltk.javascript.debug.ui/src/org/eclipse/dltk/javascript/internal/debug/ui/JavaScriptDebugModelPresentation.java
@@ -1,11 +1,13 @@
package org.eclipse.dltk.javascript.internal.debug.ui;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.dltk.debug.core.DLTKDebugPlugin;
import org.eclipse.dltk.debug.core.model.IScriptBreakpoint;
import org.eclipse.dltk.debug.core.model.IScriptMethodEntryBreakpoint;
+import org.eclipse.dltk.debug.core.model.IScriptValue;
import org.eclipse.dltk.debug.core.model.IScriptVariable;
import org.eclipse.dltk.debug.core.model.IScriptWatchpoint;
import org.eclipse.dltk.debug.ui.ScriptDebugImageDescriptor;
@@ -106,7 +108,14 @@
protected Image getVariableImage(IScriptVariable variable) {
IScriptVariable v = variable;
- String typeString = v.getType().getName();
+ IScriptValue scriptValue;
+ try {
+ scriptValue = (IScriptValue)v.getValue();
+ } catch (DebugException e) {
+ return ScriptDebugImages
+ .get(ScriptDebugImages.IMG_OBJS_LOCAL_VARIABLE);
+ }
+ String typeString = (scriptValue).getType().getName();
if (typeString.equals("function"))
return DLTKPluginImages.get(DLTKPluginImages.IMG_METHOD_PRIVATE);
if (typeString.equals("javaclass"))
@@ -115,7 +124,7 @@
return DLTKPluginImages.get(DLTKPluginImages.IMG_METHOD_PROTECTED);
if (typeString.equals("javaarray"))
return DLTKPluginImages.get(DLTKPluginImages.IMG_METHOD_DEFAULT);
- String fullName = v.getEvalName();
+ String fullName = scriptValue.getEvalName();
if (fullName.indexOf('.') >= 0 || (fullName.equals("this")))
return DLTKPluginImages.get(DLTKPluginImages.IMG_METHOD_PUBLIC);
else