-
-
Notifications
You must be signed in to change notification settings - Fork 452
v12.7.1 Holder() fix fails on Electron 41 (V8 14.6 removed Holder from PropertyCallbackInfo) #1458
Copy link
Copy link
Closed
Description
Summary
PR #1456 (v12.7.1) replaced This() with Holder() in PropertyCallbackInfo contexts to fix Electron 41 compatibility. However, Electron 41 ships V8 14.6 (Chromium 146), which removed both This() and Holder() from PropertyCallbackInfo<Value>. The fix compiles against older V8 versions but fails on Electron 41.0.1.
Build errors
statement.cpp(381,43): error C2039: 'Holder': is not a member of 'v8::PropertyCallbackInfo<v8::Value>'
database.cpp(411,50): error C2039: 'Holder': is not a member of 'v8::PropertyCallbackInfo<v8::Value>'
database.cpp(415,39): error C2039: 'Holder': is not a member of 'v8::PropertyCallbackInfo<v8::Value>'
Reproduction
npm install WiseLibs/better-sqlite3#v12.7.1
npm install electron@41.0.1
npx electron-rebuildEnvironment: Windows 11, MSVC 2019 Build Tools, Node 24.x
Expected fix
The V8 14.6 replacement for Holder() on PropertyCallbackInfo is GetReceiver(). The three affected call sites in NODE_GETTER macros should use GetReceiver() instead of Holder() (with a version guard if older V8 support is needed).
Affected files:
src/objects/statement.cpp:381src/objects/database.cpp:411, 415
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels