In This Issue

  Dr. Scripter looks the 4.30d release.

Errata for previous release versions.

Other Newsletters

DevSpace Developer Support

For more information and resources, visit ScriptEase: ISDK DevSpace online.

Download Center

For latest updates and extensions, visit the ISDK Download Center.

In last month's Dr. Scripter, we discussed weak referencing, a significant feature of the newly released ScriptEase ISDK 4.30d. However, there are other noteworthy improvements found in this latest release, which we highlight below.

Create Wrappers Automatically

4.30d includes the wrapper.jse script (located in the tools folder), which reads C header files and create SE:ISDK/C wrappers automatically. For example, with this header file:

    char *foo(int a,int b);
    int zoo(char *str,int length);

Wrapper.jse would create a .c file with the functions, tables, and initializers to call these two function from within a script.

We intend to add improvements to wrapper.jse and so we look forward to feedback on what should be added.

Optionally Force ECMAScript-Compliant Object Definition

ScriptEase has traditionally allowed objects to be defined automatically, just by referencing a member. For example,this script:

    var foo;
    foo.a = 14;

would automatically make "foo" be an instance of an Object. While flexible and desirable under certain circumstances, this behavior does not conform to the more rigid ECMAScript specification.

Therefore, with "#define JSE_AUTO_OBJECT 0" in your jseopt.h file you can now disable this behavior, so that the above script would generate an error and instead would have to be written as:

    var foo = new Object();
    foo.a = 14;

Faster Auto-Increment And Auto-Decrement

Version 4.30d improves how the virtual machine handles increment (++) and decrement (--). They now execute noticeably faster and handle prototypes of the global. 

New Radix Option for Number.prototype.toString()

The ECMAScript specification is unclear about how the radix operation is to be handled with number.toString(radix); previous releases of SE:ISDK/C have ignored that parameter. With the 4.30d release radix will be used as most script-writers expect, so that the following script will create the string "19 13 10011":

    var foo = 19;
    var foostr = foo.toString()
    + " " + foo.toString(16)
    + " " + foo.toString(2);

The radix options can be enabled by adding #define JSE_NUMBER_TOSTRINGWITHRADIX 1 in your jseopt.h file

Have a question about how to use ScriptEase:ISDK? Let Dr. Scripter know at

4.30b and earlier versions

When a _get callback is added to the global variable the global-cache remains enabled, so that _get won't always be called when retrieving the variable.  A more complete description of this problem, and a workaround, are found at ../../devspace/errata/isdk/index430.htm#430 bglobgetcache

4.30d and earlier versions

C++ users disabling floating-point support with "#define JSE_FLOATING_POINT 0" will get compilation errors. These are described at ../../devspace/errata/isdk/index430.htm#430 dcppnofp

When passing non-reference variables (i.e. ones created with jseCreateVariable as opposed to gotten via jseMember/et al) to a function by reference using jseCallFunction, the variables are not updated.  A fix for this can be found on errata page at ../../devspace/errata/isdk/index430.htm#430 dcvnotpbr

ScriptEase: ISDK is a product of Nombas, Inc. Visit us at ../../index.htm