Как получить значение данных снимка во флаттере?

ECMAScript не предоставляет доступа к внутренним слотам [[ProxyHandler]] и [[ProxyTarget]].

Некоторые реализации могут предоставлять некоторые нестандартные способы, но не воспринимают это как должное.

Например, в привилегированном коде Firefox вы можете узнать, является ли объект прокси-сервером с помощью

Components.utils.isProxy(object);

Я предложил реализовать аналогичные методы, чтобы показать [[ProxyHandler]] и [ [ProxyTarget]]. Они сказали мне реализовать их в Debugger.Object вместо Components.utils.

Когда патч земли, можно будет использовать что-то вроде

Components.utils.import('resource://gre/modules/jsdebugger.jsm');
var Cc = Components.classes;

// Add a debugger to a new global
var global = new Components.utils.Sandbox(
  Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal),
  { freshZone: true }
);
addDebuggerToGlobal(global);
var dbg = new global.Debugger().addDebuggee(this);

// Create a debugger object of your object, and run proxy getters
var dbgObj = dbg.makeDebuggeeValue(object);
if(dbgObj.isProxy) { // a boolean
  dbgObj.proxyHandler.unsafeDereference(); // the [[ProxyHandler]]
  dbgObj.proxyTarget.unsafeDereference(); // the [[ProxyTarget]]
}
0
задан Miroslav Glamuzina 31 March 2019 в 22:30
поделиться