diff options
author | Alistair Delva <adelva@google.com> | 2024-04-10 14:15:29 -0700 |
---|---|---|
committer | Alistair Delva <adelva@google.com> | 2024-04-11 12:58:28 -0700 |
commit | d0f0f90be16c2ac553b5fa08512045273135147a (patch) | |
tree | 5d9ebb7a04807ea8a609ddd18b0162bc87530e4b /Examples/test-suite/javascript/member_pointer_runme.js | |
parent | 6ffc1dbf29ba98c4d8aa71ebc9b484e973fe1030 (diff) | |
download | swig-d0f0f90be16c2ac553b5fa08512045273135147a.tar.gz |
Change-Id: I47cef2be94299220d80265d949a95b58eee2c23b
Diffstat (limited to 'Examples/test-suite/javascript/member_pointer_runme.js')
-rw-r--r-- | Examples/test-suite/javascript/member_pointer_runme.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Examples/test-suite/javascript/member_pointer_runme.js b/Examples/test-suite/javascript/member_pointer_runme.js new file mode 100644 index 000000000..6c11ec6d6 --- /dev/null +++ b/Examples/test-suite/javascript/member_pointer_runme.js @@ -0,0 +1,51 @@ +// Example using pointers to member functions + +var member_pointer = require("member_pointer"); + +function check(what, expected, actual) { + if (expected != actual) { + throw new Error( + "Failed: ", what, " Expected: ", expected, " Actual: ", actual); + } +} + +// Get the pointers + +area_pt = member_pointer.areapt(); +perim_pt = member_pointer.perimeterpt(); + +// Create some objects + +s = new member_pointer.Square(10); + +// Do some calculations + +check("Square area ", 100.0, member_pointer.do_op(s, area_pt)); +check("Square perim", 40.0, member_pointer.do_op(s, perim_pt)); + +memberPtr = member_pointer.areavar; +memberPtr = member_pointer.perimetervar; + +// Try the variables +check("Square area ", 100.0, member_pointer.do_op(s, member_pointer.areavar)); +check("Square perim", 40.0, member_pointer.do_op(s, member_pointer.perimetervar)); + +// Modify one of the variables +member_pointer.areavar = perim_pt; + +check("Square perimeter", 40.0, member_pointer.do_op(s, member_pointer.areavar)); + +// Try the constants +memberPtr = member_pointer.AREAPT; +memberPtr = member_pointer.PERIMPT; +memberPtr = member_pointer.NULLPT; + +check("Square area ", 100.0, member_pointer.do_op(s, member_pointer.AREAPT)); +check("Square perim", 40.0, member_pointer.do_op(s, member_pointer.PERIMPT)); + +// Typedefs +check("Square perim", 40.0, member_pointer.do_op_td(s, perim_pt)); + +check("Add by value", 3, member_pointer.call1(member_pointer.ADD_BY_VALUE, 1, 2)); +check("Add by pointer", 7, member_pointer.call2(member_pointer.ADD_BY_POINTER, 3, 4)); +check("Add by reference", 11, member_pointer.call3(member_pointer.ADD_BY_REFERENCE, 5, 6)); |