Changes for version 0.26

  • (tb) Ported to mozjs-60 and mozjs-78 (SpiderMonkey 60 and 78) (tb) Rewrote Makefile.PL to use ExtUtils::PkgConfig, auto-detecting mozjs-60 or mozjs-78 with version-appropriate C++ standard (tb) Rewrote XS bindings for mozjs-60 C++ API:
    • Replaced JSRuntime with single-context model
    • Updated to JS::Evaluate, JS::CompileOptions, JS::RootedObject/Value
    • Replaced JS_SetErrorReporter with JS::SetWarningReporter and exception-based error reporting
    • Updated getter/setter dispatchers for new JSGetterOp/JSSetterOp signatures with external property value storage
    • Updated FunctionDispatcher to JS::CallArgs API
    • Replaced JS_SetOperationCallback with JS_AddInterruptCallback
  • (tb) Added conditional compilation for mozjs-78:
    • Compartments replaced by Realms (JS::EnterRealm/JS::LeaveRealm)
    • JS_EncodeString replaced by JS_EncodeStringToLatin1
    • JS::Evaluate now requires JS::SourceText wrapper
    • JS_InitStandardClasses replaced by JS::InitRealmStandardClasses
    • Accessor properties use JS_NewFunction-based getter/setter
  • (tb) Added automatic cleanup via DESTROY method (tb) Removed Log::Log4perl and Data::Dumper dependencies (tb) Updated POD documentation

Modules

Perl interface to the JavaScript Engine