Merge with the master again.
Bring in the recent JavaScript changes.
This commit is contained in:
commit
c5e5978287
364 changed files with 11981 additions and 294 deletions
|
|
@ -48,6 +48,7 @@ eswig_SOURCES = CParse/cscanner.c \
|
|||
Modules/go.cxx \
|
||||
Modules/guile.cxx \
|
||||
Modules/java.cxx \
|
||||
Modules/javascript.cxx \
|
||||
Modules/lang.cxx \
|
||||
Modules/lua.cxx \
|
||||
Modules/main.cxx \
|
||||
|
|
@ -108,7 +109,7 @@ eswig_LDADD = @SWIGLIBS@
|
|||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
# The executable is copied to the root directory for installation and running the test-suite.
|
||||
# This occurs on each invocation of make and is a step towards providing support for multiple
|
||||
# This occurs on each invocation of make and is a step towards providing support for multiple
|
||||
# build directories.
|
||||
all-local: eswig@EXEEXT@
|
||||
cp -f $(top_builddir)/Source/eswig@EXEEXT@ $(top_builddir)/swig@EXEEXT@
|
||||
|
|
@ -154,4 +155,3 @@ beautify-file:
|
|||
indent -kr --honour-newlines --line-length160 --indent-level2 --braces-on-func-def-line --leave-optional-blank-lines $(SWIGTYPEDEFS) $(INDENTFILE) -o $(INDENTFILE).tmp;
|
||||
cat $(INDENTFILE).tmp | sed -e 's/const const /const /' > $(INDENTFILE);
|
||||
rm $(INDENTFILE).tmp;
|
||||
|
||||
|
|
|
|||
2427
Source/Modules/javascript.cxx
Normal file
2427
Source/Modules/javascript.cxx
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -2054,7 +2054,6 @@ done:
|
|||
|
||||
// Write property SET handlers
|
||||
ki = First(shadow_set_vars);
|
||||
|
||||
if (ki.key) {
|
||||
// This class has setters.
|
||||
Printf(s_phpclasses, "\n\tfunction __set($var,$value) {\n");
|
||||
|
|
@ -2077,17 +2076,6 @@ done:
|
|||
Printf(s_phpclasses, "\t\t$this->%s[$var] = $value;\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
|
||||
/* Create __isset for PHP 5.1 and later; PHP 5.0 will just ignore it. */
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif (function_exists('%s_'.$var.'_set')) return true;\n", shadow_classname);
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
} else {
|
||||
Printf(s_phpclasses, "\n\tfunction __set($var,$value) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return swig_%s_alter_newobject($this->%s,$value);\n", module, SWIG_PTR);
|
||||
|
|
@ -2097,18 +2085,10 @@ done:
|
|||
Printf(s_phpclasses, "\t\t$this->%s[$var] = $value;\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
}
|
||||
|
||||
// Write property GET handlers
|
||||
ki = First(shadow_get_vars);
|
||||
|
||||
if (ki.key) {
|
||||
// This class has getters.
|
||||
Printf(s_phpclasses, "\n\tfunction __get($var) {\n");
|
||||
|
|
@ -2144,6 +2124,19 @@ done:
|
|||
Printf(s_phpclasses, "\t\treturn $this->%s[$var];\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
|
||||
/* Create __isset for PHP 5.1 and later; PHP 5.0 will just ignore it. */
|
||||
/* __isset() should return true for read-only properties, so check for
|
||||
* *_get() not *_set(). */
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif (function_exists('%s_'.$var.'_get')) return true;\n", shadow_classname);
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
} else {
|
||||
Printf(s_phpclasses, "\n\tfunction __get($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return swig_%s_get_newobject($this->%s);\n", module, SWIG_PTR);
|
||||
|
|
@ -2153,6 +2146,14 @@ done:
|
|||
Printf(s_phpclasses, "\t\treturn $this->%s[$var];\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
}
|
||||
|
||||
if (!class_has_ctor) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ extern "C" {
|
|||
Language *swig_r(void);
|
||||
Language *swig_go(void);
|
||||
Language *swig_d(void);
|
||||
Language *swig_javascript(void);
|
||||
}
|
||||
|
||||
struct swig_module {
|
||||
|
|
@ -73,6 +74,7 @@ static swig_module modules[] = {
|
|||
{"-go", swig_go, "Go"},
|
||||
{"-guile", swig_guile, "Guile"},
|
||||
{"-java", swig_java, "Java"},
|
||||
{"-javascript", swig_javascript, "Javascript"},
|
||||
{"-lua", swig_lua, "Lua"},
|
||||
{"-modula3", swig_modula3, "Modula 3"},
|
||||
{"-mzscheme", swig_mzscheme, "Mzscheme"},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue