From f158f5d362404a3bec09c8841537e981ade5de2f Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Fri, 21 Nov 2014 00:26:04 +0100 Subject: [PATCH] javascript: Fix scope after some constructs --- tagmanager/ctags/js.c | 1 - tests/ctags/Makefile.am | 1 + tests/ctags/js-scope.js | 18 ++++++++++++++++++ tests/ctags/js-scope.js.tags | 4 ++++ tests/ctags/ui5.controller.js.tags | 6 +++--- 5 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 tests/ctags/js-scope.js create mode 100644 tests/ctags/js-scope.js.tags diff --git a/tagmanager/ctags/js.c b/tagmanager/ctags/js.c index a01fff366..793ca0858 100644 --- a/tagmanager/ctags/js.c +++ b/tagmanager/ctags/js.c @@ -1243,7 +1243,6 @@ static boolean parseStatement (tokenInfo *const token, boolean is_inside_class) { if ( is_class ) { - vStringCopy(saveScope, token->scope); addToScope(token, name->string); } else diff --git a/tests/ctags/Makefile.am b/tests/ctags/Makefile.am index 23a7ad080..d2b84598e 100644 --- a/tests/ctags/Makefile.am +++ b/tests/ctags/Makefile.am @@ -159,6 +159,7 @@ test_sources = \ intro.tex \ invalid_name.f90 \ java_enum.java \ + js-scope.js \ jsFunc_tutorial.js \ keyword_abstract.cs \ keyword_catch_try.cs \ diff --git a/tests/ctags/js-scope.js b/tests/ctags/js-scope.js new file mode 100644 index 000000000..4ad16b672 --- /dev/null +++ b/tests/ctags/js-scope.js @@ -0,0 +1,18 @@ + +function A() { + this.a = 1; +} + +A.prototype = { + m1 : function() { + this.a = 2; + + foo.bar.baz.hello(1); + foo.bar.baz.hello(2); + foo.bar.baz.hello(3); + }, + + m2: function() { + return this.a; + }, +}; diff --git a/tests/ctags/js-scope.js.tags b/tests/ctags/js-scope.js.tags new file mode 100644 index 000000000..a240d80c5 --- /dev/null +++ b/tests/ctags/js-scope.js.tags @@ -0,0 +1,4 @@ +# format=tagmanager +AÌ1Ö0 +m1Ì128ÎAÖ0 +m2Ì128ÎAÖ0 diff --git a/tests/ctags/ui5.controller.js.tags b/tests/ctags/ui5.controller.js.tags index e24cdef92..eecf4b5ea 100644 --- a/tests/ctags/ui5.controller.js.tags +++ b/tests/ctags/ui5.controller.js.tags @@ -1,6 +1,6 @@ # format=tagmanager onInitÌ128Îapp.my_formÖ0 -refreshFormÌ128Îsap.app.my_formÖ0 -refreshSettlementsÌ128Îsap.app.my_formÖ0 -setRefreshedÌ128Îsap.app.my_formÖ0 +refreshFormÌ128Îapp.my_formÖ0 +refreshSettlementsÌ128Îapp.my_formÖ0 +setRefreshedÌ128Îapp.my_formÖ0 successfulRequestÌ128Îapp.my_formÖ0