All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for calling constructors functions with NewInstance on Function
- Access "this" from function callback
- value.SameValue(otherValue) function to compare values for sameness
- Undefined, Null functions to get these constant values for the isolate
- Support for calling a method on an object.
- Support for calling
IsExecutionTerminating
on isolate to check if execution is still terminating. - Support for setting and getting internal fields for template object instances
- Support for CPU profiling
- Removed error return value from NewIsolate which never fails
- Removed error return value from NewContext which never fails
- Removed error return value from Context.Isolate() which never fails
- Removed error return value from NewObjectTemplate and NewFunctionTemplate. Panic if given a nil argument.
- Function Call accepts receiver as first argument.
- Add some missing error propagation
- Fix crash from template finalizer releasing V8 data, let it be disposed with the isolate
- Fix crash by keeping alive the template while its C++ pointer is still being used
- Fix crash from accessing function template callbacks outside of
RunScript
, such as inJSONStringify
- Promise resolver and promise result
- Convert a Value to a Function and invoke it. Thanks to @robfig
- Windows static binary. Thanks to @cleiner
- Setting/unsetting of V8 feature flags
- Register promise callbacks in Go. Thanks to @robfig
- Get Function from a template for a given context. Thanks to @robfig
- Upgrade to V8 9.0.257.18
- Go GC attempting to free C memory (via finalizer) of values after an Isolate is disposed causes a panic
- Memory being held by Values after the associated Context is closed
- Support for the BigInt value to the big.Int Go type
- Create Object Templates with primitive values, including other Object Templates
- Configure Object Template as the global object of any new Context
- Function Templates with callbacks to Go
- Value to Object type, including Get/Set/Has/Delete methods
- Get Global Object from the Context
- Convert an Object Template to an instance of an Object
- NewContext() API has been improved to handle optional global object, as well as optional Isolate
- Package error messages are now prefixed with
v8go
rather than the struct name - Deprecated
iso.Close()
in favor ofiso.Dispose()
to keep consistancy with the C++ API - Upgraded V8 to 8.8.278.14
- Licence BSD 3-Clause (same as V8 and Go)
- Value methods for checking value kind (is string, number, array etc)
- C formatting via
clang-format
to aid future development - Support of vendoring with
go mod vendor
- Value methods to convert to primitive data types
- Use g++ (default for cgo) for linux builds of the static v8 lib
- Upgraded V8 to 8.7.220.31
- Manually dispose of the isolate when required
- Monitor isolate heap statistics. Thanks to @mehrdadrad
- Upgrade V8 to 8.0.426.15
- Upgrade V8 to 7.7.299.9
- Create V8 Isolate
- Create Contexts
- Run JavaScript scripts
- Get Values back from JavaScript in Go
- Get detailed JavaScript errors in Go, including stack traces
- Terminate long running scripts from any Goroutine