Warning: session_start(): open(/var/lib/php/sessions/sess_u0f2bces24p5gjbrk3p3mkergh, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
/*
swap method o.add(a, b) to {
ret super + " (added)";
}
=>
var add_old = cc.add;
o.add = (a, b) -> {
ret o.add_fallback(add_old, a, b) + " (added)";
};
*/
svoid tok_swapFunctions(LS tok) {
int i;
while ((i = jfind(tok, "swap method .(")) >= 0) {
S obj = tok.get(i+4);
S methodName = tok.get(i+8);
int iOpening = i+10;
int iClosing = indexOf(tok, i, ")");
S args = joinSubList(tok, iOpening+2, iClosing-1);
assertEquals(get(tok, iClosing+2), "to");
assertEquals(get(tok, iClosing+4), "{");
int iOpeningCurly = iClosing+4;
int iClosingCurly = tok_findEndOfBlock(tok, iOpeningCurly)-1;
S add_old = makeVar();
LS tokBody = cloneList(cncSubList(tok, iOpeningCurly+1, iClosingCurly));
jreplace(tokBody, "super",
(_tok, nIdx) -> !eqGet(tok, nIdx+3, "."),
"\*obj*/.\*methodName*/_fallback(\*add_old*/, \*args*/)");
S src =
"{ var \*add_old*/ = \*obj*/.\*methodName*/; "
+ "\*obj*/.\*methodName*/ = (\*args*/) -> { "
+ join(tokBody) + "};";
replaceTokens_reTok(tok, i, iClosingCurly+1, src);
}
}