From b328355a907a045d7f4c13aa1636dbcbeea43178 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Tue, 23 Sep 2025 15:42:27 -0400 Subject: [PATCH] fix: apparently setters shadow getting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I thought you could: method() {} set method (v) { /* ... /* } but you can't. You have to: get method() { return (function () {}).bind(this) } set method (v) { /* ... /* } I don't know why a setter can't just only shadow setting, but that's how they designed the language. ¯\_(ツ)_/¯ --- src/backend/src/Extension.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/backend/src/Extension.js b/src/backend/src/Extension.js index ec70b56e9..a5d4efa0f 100644 --- a/src/backend/src/Extension.js +++ b/src/backend/src/Extension.js @@ -219,10 +219,12 @@ class Extension extends AdvancedBase { }); } - preinit (callback) { - this.on('preinit', callback); + get preinit() { + return (function (callback) { + this.on('preinit', callback); + }).bind(this); } - set preinit (callback) { + set preinit(callback) { if ( this.only_one_preinit_fn === null ) { this.on('preinit', (...a) => { this.only_one_preinit_fn(...a); @@ -233,9 +235,11 @@ class Extension extends AdvancedBase { } this.only_one_preinit_fn = callback; } - - init (callback) { - this.on('init', callback); + + get init() { + return (function(callback) { + this.on('init', callback); + }).bind(this); } set init (callback) { if ( this.only_one_init_fn === null ) { @@ -248,8 +252,6 @@ class Extension extends AdvancedBase { } this.only_one_init_fn = callback; } - - // /** * This method will create the "default service" for an extension.