Releases: microsoft/ClearScript
Releases · microsoft/ClearScript
Version 5.4.7
- Added
ImmutableValueAttribute
and fixed canonical reference support. - Hardened native timers and V8 background tasks, fixing intermittent V8 crashes.
- Fixed nested V8 syntax error reporting.
- Added tests for bug fixes and new APIs.
- Tested with V8 5.3.332.45.
Version 5.4.6
- Expanded canonical reference support to all equatable value types.
- Fixed host-side and cross-engine assignment of VBScript class object properties (Issue #104).
- Fixed a bug preventing assembly-qualified type names from being used with
ScriptEngine.AddHostType()
. - Fixed double execution of exception-throwing code via C# dynamic (Issue #105).
- Added
IScriptEngineException.ExecutionStarted
. - Fixed memory leak with shared V8 runtimes (Issue #107).
- Fixed cross-engine double execution of exception-throwing code (Issue #108).
- Tweaked V8 debug protocol implementation to support non-Eclipse debuggers.
- Added tests for bug fixes and new APIs.
- Tested with V8 5.1.281.50.
Version 5.4.5
- Breaking Change: Added strongly-typed indexing support for
IList<T>
. BecauseIList<T>
takes precedence overIList
, array and list elements retrieved by index are now correctly type-restricted. Use the new propertyScriptEngine.DisableListIndexTypeRestriction
to restore the previous behavior, orScriptEngine.DisableTypeRestriction
to control type restriction globally. - Added
V8ScriptEngine.SuppressExtensionMethodEnumeration
(Issue #101). - Fixed native property hiding on V8 (Issue #98).
- Fixed host method clobbering on V8.
- Reduced V8 stack overflow detection false positives.
- Added
HostItemFlags.DirectAccess
. - Added tests for bug fixes and new APIs.
- Tested with V8 4.9.385.30.
Version 5.4.4
- Added fast data transfer between host arrays and JavaScript typed arrays (and other
ArrayBuffer
views) (Issue #83). - IEnumerable instances now support ES6 iteration and for...of when exposed in
V8ScriptEngine
. - Added fully dynamic treatment for exposed IDispatchEx instances (Issue #96).
- Fixed host member enumeration and deletion on JScript with Standards Mode (Issue #94).
- Improved numeric argument conversion and matching (Issue #95).
- Fixed nested termination behavior on V8.
- Added tests for bug fixes and new APIs.
- Tested with V8 4.7.80.25.
Version 5.4.3
- Added support for Visual Studio 2015.
- Changed V8Update to use installed Python 2.x.
- Fixed hangs in V8 proxy finalizers during script execution (Issue #86).
- Fixed V8 weak handle callback context leak (Issue #90).
- Fixed dynamic method invocation with value-typed arguments (Issue #89).
- Improved
V8ScriptEngine.Interrupt()
latency and reliability. - Added tests for bug fixes.
- Tested with V8 4.4.63.29.
Version 5.4.2.1
- Fixed unnecessary assembly table construction (Issue #84).
Version 5.4.2
- Updated ClearScriptBenchmarks to use SunSpider 1.0.2.
- Host methods and delegates in
V8ScriptEngine
now supporttoFunction()
, which creates a native JavaScript function wrapper. - Fixed syntax error reporting in nested
WindowsScriptEngine
invocations. - Added defensive code to tolerate
IProcessDebugManager::AddApplication()
failure (Issue #76). - Added
ScriptEngine.AddHostType()
overloads that derive the script item name from the type name. - Implemented host item data sharing and other optimizations, boosting memory efficiency in many scenarios.
- Added default
ScriptAccess
settings at the type, assembly, and engine levels. - Enhanced support for default properties, fixing Issue #74.
- Added
IHostWindow
andWindowsScriptEngine.HostWindow
(Issue #73). V8RuntimeConstraints
limits are now specified in MiB. For compatibility with hosts that predate an inadvertent breaking change in Version 5.4.1, values greater than 1048576 (1 TiB) are still interpreted as bytes.- Fixed V8 debug agent in ASP.NET and eliminated excessive thread usage (Issue #75).
- Added
ScriptMemberFlags.WrapNullResult
,ScriptEngine.EnableNullResultWrapping
, andHostFunctions.isNull()
(Issue #72). - Added enforcement of restricted access to non-public accessors of public properties (Issue #71).
- (Andrey Taritsyn) Switched assembly targets to .NET 4 Client Profile.
- Added tests for bug fixes and new APIs.
- Tested with V8 4.2.77.18.
Version 5.4.1
- Fixed several issues affecting
GlobalMembers
on V8. - Implemented a V8 debug agent to compensate for removed V8 API.
- V8Update now fetches V8 source and dependencies from Git repositories.
- Fixed V8 assembly unloading and patched V8 to tolerate redundant initialization (Issue #60).
- Added
ScriptEngine.EnableAutoHostVariables
. - Fixed by-reference arguments to VBScript functions (Issue #58).
- Removed support for Visual Studio 2012 (V8 build now requires at least Visual Studio 2013).
- Added explicit loading of primary interop assemblies to fix Issue #68.
- Added host exception marshaling for V8.
- Fixed
V8ScriptEngine
crash when script code calls theHostObject
constructor. - Fixed host item caching for host variables.
- Added non-generic overloads of
newArr()
andfunc()
toHostFunctions
. - Added
ScriptEngine.Current
. HostFunctions
instances can now be exposed in multiple script engines.- Added a
GetDynamicMemberNames()
override toMetaScriptItem
(Issue #64). - Fixed indexed property binding ambiguity for inherited interfaces (Issue #69).
- Added tests for bug fixes and new APIs.
- Tested with V8 3.30.33.16.
ClearScript 5.4
- Added COM object projection (Issue #38):
- New
ScriptEngine
methods:AddCOMObject()
andAddCOMType()
. - New
ExtendedHostFunctions
methods:newComObj()
andcomType()
.
- New
- Improved performance and memory usage:
- Host methods, events, and const/readonly fields are now cached as direct V8 object properties.
- Added shared bind cache for improved performance and enhanced binder leak mitigation.
- Made
V8ScriptEngine.CollectGarbage()
much more aggressive. - Switched to weak context/isolate bindings for V8 script objects and compiled scripts, fixing Issue #44.
- Bypassed reflection for Windows script item property and method access, fixing Issue #47.
- Added explicit disposal of cached V8 objects to fix Issue #48.
- Enhanced support for legacy scripts:
- Added null, decimal, and array marshaling options to
WindowsScriptEngine
. - Added
ScriptEngine.UseReflectionBindFallback
. - VBScript's For Each ... Next and JScript's Enumerator now operate on IEnumerable instances.
- Added null, decimal, and array marshaling options to
- Other enhancements:
- Added optional heap size monitoring to
V8ScriptEngine
andV8Runtime
(experimental). - Added
HostFunctions.tryCatch()
. - Added
ScriptEngine.Invoke()
andV8ScriptEngine.Execute(V8Script)
. - Added
ScriptEngine.DisableTypeRestriction
. - Enhanced error reporting for V8 assembly load failures (Issue #39).
- V8Update now supports branched V8 revisions.
- Added optional heap size monitoring to
- Miscellaneous fixes:
- Added a V8 array buffer allocator, fixing Issue #46.
- Overhauled ClearScriptV8 string usage to fix Issue #42 and improve performance.
- Hardened ClearScriptV8 smart pointers.
- Changed ActiveScript sites to return the current thread culture.
- Added defensive code to make V8-related API objects resurrection-safe, fixing Issue #51.
- Fixed exception when using
WindowsScriptEngineFlags.EnableDebugging
with no suitable script debugger installed (Issue #36).
- Updates for breaking V8 API changes.
- Added tests for bug fixes and new APIs.
- Tested with V8 3.26.31.15.
Version 5.3.11
- Added support for building strong named assemblies (see ReadMe.txt).
- Added
AppDomain.AssemblyResolve
hook for ClearScriptV8 (Issue #34). - Added
WindowsScriptEngineFlags.EnableStandardsMode
. - Fixed parameterless invocation of Windows script items from VB.NET.
- Fixed
WindowsScriptEngine
execution result variant leak. - Hardened assembly table I/O (Issue #33).
- Updates for breaking V8 API changes.
- Added tests for bug fixes and new APIs.
- Tested with V8 3.24.17.