Source code

Revision control

Copy as Markdown

Other Tools

var access_log = "";
const handler = {
get: function(obj, prop) {
access_log += prop + ",";
return prop in obj ? obj[prop] : "<filled by proxy>";
}
};
class ProxiedGroupRegExp extends RegExp {
exec(s) {
var result = super.exec(s);
if (result) {
result.groups = new Proxy(result.groups, handler);
}
return result;
}
}
let re = new ProxiedGroupRegExp("(?<x>.)");
assertEq("a".replace(re, "$<x> $<y>"), "a <filled by proxy>");
assertEq(access_log, "x,y,")