Comment puis-je obtenir l'adresse mémoire d'une variable JavaScript?

Est-il possible de trouver l'adresse mémoire d'une variable JavaScript? Le code JavaScript fait partie de (incorporé) une application normale où JavaScript est utilisé comme interface vers C ++ et ne s'exécute pas sur le navigateur. L'implémentation JavaScript utilisée est SpiderMonkey.

Si cela était possible, il serait très dépendant du moteur javascript. Le moteur javascript le plus moderne compile leur code à l'aide d'un compilateur juste en temps et en dérangant avec leurs variables internes serait soit mauvais pour la performance, soit mauvais pour la stabilité.

Si le moteur le permet, pourquoi ne pas créer une interface d'appel de fonction sur un code natif pour échanger les valeurs de la variable?

C'est plus ou moins impossible: la stratégie d'évaluation de Javascript consiste à utiliser toujours l'appel par valeur, mais dans le cas des objets (y compris les tableaux), la valeur passée est une référence à l'objet, qui n'est pas copiée ou clonée. Si vous réaffectez l'objet lui-même dans la fonction, l'original ne sera pas modifié, mais si vous réaffectez une des propriétés de l'objet, cela affectera l'objet d'origine.

Cela dit, qu'est-ce que vous essayez d'accomplir? Si vous passez simplement des données complexes entre C ++ et Javascript, vous pouvez utiliser une bibliothèque JSON pour communiquer. Envoyer un objet JSON à C ++ pour le traitement et obtenir un objet JSON pour remplacer l'ancien.