Releases: microsoft/ClearScript
Releases · microsoft/ClearScript
ClearScript 7.5
- Breaking changes:
- .NET Framework versions older than 4.6.2 are no longer supported.
- Due to changes in V8, Linux versions now require glibc 2.27 or later.
Initial support for the new
FastProxy
API:- Provides low-overhead access to host resources from script code.
- Enables zero-allocation marshaling for most fundamental data types.
- Tutorial blog post coming soon.
- Extensive efficiency improvements:
- Overhauled the codebase in favor of
static
lambdas. - Replaced most scope objects with
ref
structures. - Minimized boxing and structure copying on performance-critical code paths.
- Eliminated the use of argument vectors for host calls with typical argument counts.
- Overhauled the codebase in favor of
Added span support to array buffers and related types (GitHub Issue #632).
Enhanced task-promise interop with support for pre-settled promises and pre-completed tasks (GitHub Issue #641).
Added
V8ScriptEngineFlags.EnableArrayConversion
(GitHub Issue #634).Fixed fast data transfer bounds checking for zero-length arrays and buffers (GitHub Issue #581).
Added
import.meta.setResult
to enable reliable module evaluation results.Fixed
MaxHeapSize
andMaxRuntimeHeapSize
behavior (GitHub Issue #571).- Incorporated Ansis Māliņš' conversion of
MethodBindResult
to aref
structure (GitHub PR #616). - Added promise state indicators to
JavaScriptObjectFlags
. - Fixed XMLDOM enumeration issue discussed in GitHub Issue #594.
- Added sparse argument support to the reflection binder (GitHub Discussion #624).
- Added
ScriptEngine.NullImportValue
(GitHub Issue #629). - Switched to XML for assembly table storage to eliminate security issues related to
BinaryFormatter
. - Updated API documentation.
- Tested with V8 13.3.415.23.
Version 7.4.5
Added
AddPerformanceObject
andSetTimerResolution
toV8ScriptEngineFlags
(GitHub Discussion #568).Enhanced execution and termination transitions, fixing GitHub Issue #560.
- Optimized document code for string documents (GitHub Discussion #567).
- Switched to Clang and C++20 on all platforms.
- Added .NET 8 targets to test projects.
- Updated API and build documentation.
- Tested with V8 12.3.219.12.
Version 7.4.4
- Added
ConcurrentPropertyBag
(GitHub Issue #531). Added
V8ScriptEngineFlags.UseSynchronizationContexts
(GitHub Discussion #509).- Added
ScriptEngine.CustomAttributeLoader
(GitHub Discussion #540). - Fixed property accessor recursion bug (GitHub Issue #541).
- Added
ScriptEngine.HostData
andCustomAttributeLoader.Default
. - Updated API documentation.
- Tested with V8 11.8.172.15.
Version 7.4.3
- Improved handling of anonymous host types.
Added support for JSON modules.
Made host object
toJSON
method non-enumerable.Added enhanced compilation APIs (GitHub Issue #521).
Added debugger connection events (GitHub Issue #518).
- Added the
NuGet package (GitHub Issue #515).
- Updated API documentation.
- Tested with V8 11.6.189.18.
Version 7.4.2
- Enhanced support for parameterless value type constructors (mentioned in GitHub Issue #444).
- Fixed COM-related memory leak on .NET Framework (GitHub Issue #510).
- Enabled multidimensional array manipulation via VBScript indexing syntax (GitHub Issue #511).
- Improved stability on Apple Silicon devices.
- Tested with V8 11.4.183.17.
Version 7.4.1
- Performance improvements:
- .NET method arguments and property/field values are now passed pre-decoded, eliminating decoding hops.
- Property, field, and constructor bind caching accelerates re-invocation.
- Further refined
HeapExpansionMultiplier
handling. - Miscellaneous NuGet package updates.
- Tested with V8 11.2.214.13.
ClearScript 7.4
- Generic script objects now implement
IDictionary<string, object>
. - Added
JavaScriptExtensions.ToEnumerable
andToAsyncEnumerable
(GitHub Issue #494). DocumentAccessFlags.AllowCategoryMismatch
now applies to system documents.- Added
DocumentSettings.AsyncLoadCallback
andDocumentAccessFlags.UseAsyncLoadCallback
. - Implemented smarter and safer
HeapExpansionMultiplier
handling. - Added
ValueRef
andValueRef<T>
utility classes. - Updated API documentation.
- Tested with V8 11.1.277.14.
Version 7.3.7
- Added one-way CommonJS-ES6 module interoperability; More...
- Fixed an intermittent ClearScriptV8 crash (GitHub Issue #478).
- Added
IScriptEngine
,IScriptObject
,IJavaScriptObject
,JavaScriptObjectKind
, andJavaScriptObjectFlags
. - Added
DocumentAccessFlags.AllowCategoryMismatch
. - Fixed host collection iteration with script access disabled by default at the engine level (GitHub Issue #471).
- Changed SunSpider benchmark to download from GitHub and print simple results to the console.
- Added .NET 7 targets to test projects.
- Updated API documentation.
- Tested with V8 10.9.194.10.
Version 7.3.6
- Fixed host collection iteration with type restriction disabled (GitHub Issue #463).
- Added
DocumentFlags.AwaitDebuggerAndPause
(GitHub Discussion #452). - Added
AttributeTargets.Constructor
toScriptUsageAttribute
andNoScriptAccessAttribute
(GitHub Issue #444). - Updated API documentation.
- Tested with V8 10.8.168.24.
Version 7.3.5
- Added support for script object identity comparison (GitHub Issue #422).
- Overhauled scriptable enumerators to fix GitHub Issue #423.
- Eliminated default V8 platform to fix process exit deadlock on Windows 7 (GitHub Issue #424).
- Addressed performance regression reported in GitHub Issue #433.
- Added a pair of
ToRestrictedHostObject
overloads (GitHub Issue #437). - Fixed a specific property accessor scriptability scenario (GitHub Issue #439).
- Updated API documentation.
- Tested with V8 10.7.193.22.