fixes for having index based functions in the object declaration.
diff --git a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
index eea535b..1cc568d 100644
--- a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
+++ b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
@@ -321,7 +321,8 @@
} else if (part instanceof PropertyInitializer) {
final PropertyInitializer pi = (PropertyInitializer) part;
// TODO (alex) handle jsdoc
- if (pi.getValue() instanceof FunctionStatement) {
+ if (pi.getValue() instanceof FunctionStatement
+ && pi.getName() instanceof Identifier) {
createFunctionDeclaration(
(FunctionStatement) pi.getValue(),
(Identifier) pi.getName());
diff --git a/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java b/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
index f03f18d..24959c3 100644
--- a/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
+++ b/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
@@ -63,6 +63,19 @@
assertEquals(IModelElement.SOURCE_MODULE, parent.getElementType());
assertEquals("a.js", parent.getElementName());
}
+
+
+ @Test
+ public void testVartextFormatters() throws CoreException {
+ final TestSearchResults results = PROJECT.search("textFormatters", FIELD,
+ DECLARATIONS);
+ assertEquals(1, results.size());
+ final IModelElement method = results.locate(IField.class, "textFormatters");
+ final IModelElement parent = method.getParent();
+ assertEquals(IModelElement.SOURCE_MODULE, parent.getElementType());
+ assertEquals("selection2.js", parent.getElementName());
+ }
+
@Test
public void testVarB() throws CoreException {
diff --git a/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js b/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js
new file mode 100644
index 0000000..3141017
--- /dev/null
+++ b/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js
@@ -0,0 +1,15 @@
+var textFormatters = {
+ 1: function(node) {
+ return 'Deleting deprecated class';
+ },
+ 2: function(node) {
+ return 'Error deleting deprecated class';
+ },
+ 3: function(node) {
+ return 'Skipping deprecated class';
+ }
+ };
+
+function textFormattersTest() {
+ textFormatters[1];
+}
\ No newline at end of file