Fix regressions.

- Adapted to changes in UTL
- Fixed detection of setters and getters.
This commit is contained in:
Oliver Buchtala 2014-03-05 01:10:55 +01:00
commit b5bc87667d
3 changed files with 25 additions and 7 deletions

View file

@ -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,

View file

@ -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);

View file

@ -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