From b5bc87667d62fa05a31ab85ba0b7894f83d7cdce Mon Sep 17 00:00:00 2001 From: Oliver Buchtala Date: Wed, 5 Mar 2014 01:10:55 +0100 Subject: [PATCH] Fix regressions. - Adapted to changes in UTL - Fixed detection of setters and getters. --- Lib/javascript/jsc/javascriptstrings.swg | 2 ++ Source/Modules/javascript.cxx | 23 +++++++++++++++++++---- Tools/javascript/Makefile.in | 7 ++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Lib/javascript/jsc/javascriptstrings.swg b/Lib/javascript/jsc/javascriptstrings.swg index 26908d9da..0581c1920 100644 --- a/Lib/javascript/jsc/javascriptstrings.swg +++ b/Lib/javascript/jsc/javascriptstrings.swg @@ -78,6 +78,7 @@ SWIG_JSC_FromCharPtrAndSize(JSContextRef context, const char* carray, size_t siz SWIG_AsCharPtrAndSize, SWIG_FromCharPtrAndSize, SWIG_CharPtrLen, + SWIG_CharBufLen, SWIG_NewCopyCharArray, SWIG_DeleteCharArray, FragLimits, CHAR_MIN, CHAR_MAX) @@ -167,6 +168,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val) SWIG_AsCharPtrAndSize, SWIG_FromCharPtrAndSize, SWIG_CharPtrLen, + SWIG_CharBufLen, SWIG_As##CharName##Ptr, SWIG_From##CharName##Ptr, SWIG_As##CharName##Array, diff --git a/Source/Modules/javascript.cxx b/Source/Modules/javascript.cxx index 748043619..53af47665 100644 --- a/Source/Modules/javascript.cxx +++ b/Source/Modules/javascript.cxx @@ -492,6 +492,14 @@ int JAVASCRIPT::top(Node *n) { return SWIG_OK; } +static const char *usage = (char *) "\ +Javascript Options (available with -javascript)\n\ + -jsc - creates a JavascriptCore extension \n\ + -v8 - creates a v8 extension \n\ + -node - creates a node.js extension \n\ + -debug-codetemplates - generates information about the origin of code templates.\n"; + + /* --------------------------------------------------------------------- * main() * @@ -522,6 +530,9 @@ void JAVASCRIPT::main(int argc, char *argv[]) { } else if (strcmp(argv[i], "-debug-codetemplates") == 0) { Swig_mark_arg(i); js_template_enable_debug = true; + } else if (strcmp(argv[i], "-help") == 0) { + fputs(usage, stdout); + return; } } } @@ -704,14 +715,18 @@ int JSEmitter::emitWrapperFunction(Node *n) { if (GetFlag(n, "allocate:smartpointeraccess")) { is_static = false; } - bool is_setter = GetFlag(n, "wrap:issetter"); + + bool is_member = GetFlag(n, "ismember"); + bool is_setter = GetFlag(n, "memberset") || GetFlag(n, "varset"); + bool is_getter = GetFlag(n, "memberget") || GetFlag(n, "varget"); if (is_setter) { - bool is_member = GetFlag(n, "memberset"); ret = emitSetter(n, is_member, is_static); - } else { - bool is_member = GetFlag(n, "memberget"); + } else if (is_getter) { ret = emitGetter(n, is_member, is_static); + } else { + Swig_print_node(n); } + } else { Printf(stderr, "Warning: unsupported wrapper function type\n"); Swig_print_node(n); diff --git a/Tools/javascript/Makefile.in b/Tools/javascript/Makefile.in index f18cfa65d..d58412b50 100644 --- a/Tools/javascript/Makefile.in +++ b/Tools/javascript/Makefile.in @@ -15,7 +15,8 @@ CC = @CC@ # HACK: under OSX a g++ compiled interpreter is seg-faulting when loading module libraries # with 'c++' it works... probably some missing flags? JSCXX = @JSINTERPRETERCXX@ -CFLAGS = @BOOST_CPPFLAGS@ @PLATFLAGS@ +CFLAGS = @PLATCFLAGS@ +CXXFLAGS = @BOOST_CPPFLAGS@ @PLATCXXFLAGS@ LINKFLAGS = @JSINTERPRETERLINKFLAGS@ ROOT_DIR = @ROOT_DIR@ @@ -47,10 +48,10 @@ JS_INTERPRETER_SRC = javascript.cxx js_shell.cxx $(JS_INTERPRETER_SRC_JSC) $(JS_ JS_INTERPRETER_OBJS = $(JS_INTERPRETER_SRC:.cxx=.o) %.o: %.cxx - $(JSCXX) $(JS_INTERPRETER_DEFINES) $(CFLAGS) $(JSINCLUDES) -o $@ -c $< + $(JSCXX) $(JS_INTERPRETER_DEFINES) $(CXXFLAGS) $(JSINCLUDES) -o $@ -c $< javascript: $(JS_INTERPRETER_OBJS) - $(JSCXX) $^ $(CFLAGS) -o javascript $(JSDYNAMICLINKING) $(LINKFLAGS) + $(JSCXX) $^ $(CXXFLAGS) -o javascript $(JSDYNAMICLINKING) $(LINKFLAGS) clean: rm -f *.o