Add proxy trap for the in operator

This commit is contained in:
Carlos Fernandez 2026-04-25 18:01:59 -04:00
parent 1f9045276c
commit 0ccf3bde86

View file

@ -373,9 +373,10 @@ export const itemAbleRollParse = (value, actor, item) => {
const isItemTarget = value.toLowerCase().includes('item.@'); const isItemTarget = value.toLowerCase().includes('item.@');
const slicedValue = isItemTarget ? value.replaceAll(/item\.@/gi, '@') : value; const slicedValue = isItemTarget ? value.replaceAll(/item\.@/gi, '@') : value;
const model = isItemTarget || item instanceof Item ? item : actor; const model = isItemTarget || item instanceof Item ? item : actor;
const rollData = isItemTarget || !model?.getRollData ? model : model.getRollData();
try { try {
return Roll.replaceFormulaData(slicedValue, isItemTarget || !model?.getRollData ? model : model.getRollData()); return Roll.replaceFormulaData(slicedValue, rollData);
} catch (_) { } catch (_) {
return ''; return '';
} }
@ -831,6 +832,9 @@ export function createShallowProxy(obj) {
deleteProperty(_target, prop) { deleteProperty(_target, prop) {
delete overrides[prop]; delete overrides[prop];
return true; return true;
},
has(target, key) {
return key in overrides || key in target;
} }
}); });
} }