私はCajaを研究していて、それがどのように機能するかを理解するのに苦労しています。
function Brand() {
var flag = false, payload = null;
return caja.freeze({
seal: function(payloadToSeal) {
function box() {
flag = true;
payload = payloadToSeal;
}
box.toString = function() {
return "(box)";
};
unseal: function(box) {
flag = false;
payload = null;
try {
box();
if (!flag) { throw ...; }
return payload;
} finally {
flag = false;
payload = null;
}
}
});
}
これには、次のようなキャプションがあります。
図10:権利の増幅。各ブランドには、一致した暗号化および復号化キーのように機能するシールおよびシール解除機能があります。オブジェクトを封印すると、対応する開封機能によってのみ開封できる封印されたボックスが返されます。ここに示されている実装手法は、M。Stieglerによるものです。
これは擬似コードですか?atbox()
やなどの何が起こっているのか混乱していthrow ...;
ます。ヒントやアドバイスをいただければ幸いです。