V8.NET Beta Release v1.3.14.39

Rating: No reviews yet
Downloads: 252
Change Set: 2b2c983a8a3a
Released: Sep 10, 2013
Updated: Sep 10, 2013 by jamesnw
Dev status: Beta Help Icon

Recommended Download

Application V8.NET Binaries (1.3.14.39)
application, 22826K, uploaded Sep 10, 2013 - 252 downloads

Release Notes

This is new release fixes a load of bugs, adds indexing support to bound CLR objects, and implements better security. For info on the previous changes, see the previous release details. I'll update the documentation asap.

New in this release:

  • Fixed a bug in the garbage collection process where managed functions from function templates might disappear, causing the native script call to fail.
  • Many bugs fixed in the new binding system, which is much more efficient! Security has also been enhanced, so implicit binding of types, by default, will not show any properties unless you explicitly register the type using "{V8Engine}.RegisterType()".
  • Breaking change: Generic invocation will change from the form 'SomeMethod$#([types...])(params...)' (where '#' is the number of expected types) to 'SomeMethod$#([types...], params...)', which is more efficient, and allows faster binding and invoking. Same number of characters actually, and the first argument to a generic method must be an array of types (or values to get types from).
  • Added "{ObjectTemplate}.RegisterInvokeHandler()" to allow invoking non-function objects, created from templates, like function objects.
  • Added "{TypeBinder}.ChangeMemberSecurity()" to modify security on types you don't have control over. You can get a type binder using "{V8Engine}.GetTypeBinder()".

There is much better support for generic types in this release. Remember to pass an array of strong types as the first parameter to any method/constructor (i.e. MyGenMethod$2([Int32, System.Object], 1, obj).

Some things to note however when overloading any type of method: If a method doesn't have overloads, then it's easier to invoke it (the expected arguments will be known); but if not, then you may have to strong-type the parameters passed in using a registered type (i.e. MyGenMethod(System.Object(obj)). (you can register any types you need, see the console app for lots of examples)

If you want to know how to do something, please just ask in the discussions for now until I update the docs. ;)

Reviews for this release

No reviews yet for this release.