Android napi (quickjs-ng): assigning to a Java/Kotlin bean property does not call the setter
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 47/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- android, javascript, kotlin
Piste de recherche
Start by tracing how @nativescript/android-quickjs-ng exposes Kotlin bean properties and handles JavaScript property assignment; the issue names no source files or tests. Compare assignment to handler.enabled with the working handler.setEnabled(false) call, then check whether nullable object properties behave the same way. Done means assignment invokes the native setter and updates the value; the report says other napi engines are untested.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Version: @nativescript/android-quickjs-ng 9.0.0-alpha.5 (also seen with 9.1.0-alpha.0). The previous V8 runtime (@akylas/nativescript-android-runtime 8.9.2) called the setter.
Kotlin class:
class AutoScanHandler(...) {
var enabled: Boolean = true
set(value) { field = value; Log.d(TAG, "set enabled:$value") }
}
JS:
const handler = new com.akylas.documentscanner.AutoScanHandler(context, cropView, callback);
typeof handler.enabled; // "boolean"
typeof handler.setEnabled; // "function"
handler.enabled = false; // no error, no "set enabled" log
handler.enabled; // still true
handler.setEnabled(false); // works
Object.getOwnPropertyNames(Object.getPrototypeOf(handler)) lists both setEnabled and enabled, so the accessor is defined, but assignment does not reach the native setter. Same for a Kotlin property with a nullable object type: processor.autoScanHandler = handler reads back null. Reads work.
Impact: silent failure, no exception. It broke auto capture in a released app (https://github.com/ossappscollective/OSS-DocumentScanner/issues/740).
Not tested on the other napi engines (V8/Hermes/JSC).
- Langage dominant
- C++
- Étoiles
- 27
- Forks
- 4
- Merge moyen
- 16 h 48 min
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NativeScript/runtimes
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
NativeScript/runtimes#100 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
NativeScript/runtimes#99 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 1-2 jours Accessibilité débutants 55/100
NativeScript/runtimes#98 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 53/100
NativeScript/runtimes#97 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
NativeScript/runtimes#94 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de NativeScript/runtimes
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 3 jours
-
status:needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
PX4/PX4-Autopilot#29496 ·
Les mainteneurs répondent en général sous 1 jour
-
Missing icon for .cpp2 filesOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
madskristensen/FileIcons#385 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
microsoft/SysmonCommon#26 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
espressif/esp-matter#1913 ·