mirror of
https://github.com/cincheo/jsweet.git
synced 2025-12-15 07:19:22 +00:00
fix #340
This commit is contained in:
parent
a0dc4721ac
commit
e017ac98be
@ -674,14 +674,21 @@ public class RemoveJavaDependenciesAdapter extends Java2TypeScriptAdapter {
|
||||
case "append":
|
||||
printMacroName(targetMethodName);
|
||||
if (invocation.getArgumentCount() == 1) {
|
||||
print("(sb => sb.str = sb.str.concat(<any>").printArgList(invocation.getArguments()).print("))(");
|
||||
print("(sb => { sb.str = sb.str.concat(<any>").printArgList(invocation.getArguments())
|
||||
.print("); return sb; })(");
|
||||
print(invocation.getTargetExpression(), delegate).print(")");
|
||||
} else {
|
||||
print("(sb => sb.str = sb.str.concat((<any>").print(invocation.getArgument(0)).print(").substr(")
|
||||
.printArgList(invocation.getArgumentTail()).print(")))(");
|
||||
print("(sb => { sb.str = sb.str.concat((<any>").print(invocation.getArgument(0)).print(").substr(")
|
||||
.printArgList(invocation.getArgumentTail()).print(")); return sb; })(");
|
||||
print(invocation.getTargetExpression(), delegate).print(")");
|
||||
}
|
||||
return true;
|
||||
case "insert":
|
||||
printMacroName(targetMethodName);
|
||||
print("((sb, index, c) => { sb.str = sb.str.substr(0, index) + c + sb.str.substr(index); return sb; })(");
|
||||
print(invocation.getTargetExpression(), delegate).print(", ").printArgList(invocation.getArguments())
|
||||
.print(")");
|
||||
return true;
|
||||
case "setCharAt":
|
||||
printMacroName(targetMethodName);
|
||||
print("((sb, index, c) => sb.str = sb.str.substr(0, index) + c + sb.str.substr(index + 1))(");
|
||||
@ -690,13 +697,13 @@ public class RemoveJavaDependenciesAdapter extends Java2TypeScriptAdapter {
|
||||
return true;
|
||||
case "deleteCharAt":
|
||||
printMacroName(targetMethodName);
|
||||
print("((sb, index) => sb.str = sb.str.substr(0, index) + sb.str.substr(index + 1))(");
|
||||
print("((sb, index) => { sb.str = sb.str.substr(0, index) + sb.str.substr(index + 1); return sb; })(");
|
||||
print(invocation.getTargetExpression(), delegate).print(", ").printArgList(invocation.getArguments())
|
||||
.print(")");
|
||||
return true;
|
||||
case "delete":
|
||||
printMacroName(targetMethodName);
|
||||
print("((sb, i1, i2) => sb.str = sb.str.substr(0, i1) + sb.str.substr(i2))(");
|
||||
print("((sb, i1, i2) => { sb.str = sb.str.substr(0, i1) + sb.str.substr(i2); return sb; })(");
|
||||
print(invocation.getTargetExpression(), delegate).print(", ").printArgList(invocation.getArguments())
|
||||
.print(")");
|
||||
return true;
|
||||
|
||||
@ -50,7 +50,7 @@ public class NativeStructuresTests extends AbstractTest {
|
||||
public void testStringBuilder() {
|
||||
eval((logHandler, result) -> {
|
||||
Assert.assertEquals("There should be no errors", 0, logHandler.reportedProblems.size());
|
||||
assertEquals("a,abc,a,abc,ab,X,tEst,E,4,tst,tt", result.get("trace"));
|
||||
assertEquals("a,abc,a,abc,ab,X,tEst,E,4,tst,tt,:qqqq,:aaaaqqqq", result.get("trace"));
|
||||
}, getSourceFile(NativeStringBuilder.class));
|
||||
}
|
||||
|
||||
|
||||
@ -58,6 +58,14 @@ public class NativeStringBuilder {
|
||||
|
||||
trace.push(""+sb3);
|
||||
|
||||
StringBuilder result = new StringBuilder();
|
||||
final String variableName = "qqqq";
|
||||
result.append(":").append(variableName);
|
||||
trace.push(result.toString());
|
||||
|
||||
result.insert(1, "aaaa");
|
||||
trace.push(result.toString());
|
||||
|
||||
$export("trace", trace.join(","));
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user