swig/Examples/javascript/nspace/runme.js
Karl Wette f574a34155 Allow examples and test-suite to be built out of source tree
- Examples/Makefile.in rules use SRCDIR as the relative source directory

- ./config.status replicates Examples/ source directory tree in build
  directory, and copies each Makefile to build directory, prefixed with
  a header which sets SRCDIR to source directory

- Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir

- Examples/test-suite/errors/Makefile.in needs to filter out source
  directory from SWIG error messages

- Lua: embedded interpreters are passed location of run-time test

- Python: copy run-time scripts to build directory because of 2to3
  conversion; import_packages example copies __init__.py from source
  directory; test-suite sets SCRIPTDIR to location of run-time tests

- Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir
  can be substituted with SRCDIR; removed './' from require() statements
  so that NODE_PATH can be used to point Node.js to build directory
2014-05-11 23:21:10 +02:00

50 lines
1.8 KiB
JavaScript

// File: runme.js
// This file illustrates class C++ interface generated
// by SWIG.
var example = require("example");
// Calling a module function ( aka global function )
if (example.module_function() !== 7) {
throw new Error("example.module_function() should equal 7");
}
console.log("example.module_function(): " + example.module_function());
// Accessing a module (aka global) variable
if (example.module_variable !== 9) {
throw new Error("example.module_variable should equal 9");
}
console.log("example.module_variable: " + example.module_variable);
// Creating an instance of the class
var w1 = new example.MyWorld.World();
console.log("Creating class instance: w1 = new example.MyWorld.World(): " + w1);
// Accessing class members
if (w1.create_world() !== 17) {
throw new Error("w1.create_world() should equal 17");
}
console.log("w1.create_world() = " + w1.create_world());
if (w1.world_max_count !== 9) {
throw new Error("w1.world_max_count should equal 9");
}
console.log("w1.world_max_count = " + w1.world_max_count);
// Accessing enums from class within namespace
if (example.MyWorld.Nested.Dweller.MALE !== 0) {
throw new Error("example.MyWorld.Nested.Dweller.MALE should equal 0");
}
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.MALE = " + example.MyWorld.Nested.Dweller.MALE);
if (example.MyWorld.Nested.Dweller.FEMALE !== 1) {
throw new Error("example.MyWorld.Nested.Dweller.FEMALE should equal 1");
}
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.FEMALE = " + example.MyWorld.Nested.Dweller.FEMALE);
// Accessing static member function
if (example.MyWorld.Nested.Dweller.count() !== 19) {
throw new Error("example.MyWorld.Nested.Dweller.count() should equal 19");
}
console.log("Accessing static member function: ex.MyWorld.Nested.Dweller.count() = " + example.MyWorld.Nested.Dweller.count());