mirror of
https://github.com/cincheo/jsweet.git
synced 2025-12-15 15:29:22 +00:00
fix #373
This commit is contained in:
parent
dc80068d51
commit
753ed3baa7
@ -1056,13 +1056,15 @@ public class RemoveJavaDependenciesAdapter extends Java2TypeScriptAdapter {
|
||||
case "remove":
|
||||
case "removeElement":
|
||||
printMacroName(targetMethodName);
|
||||
if (Util.isNumber(invocation.getArgument(0).getType())) {
|
||||
if (Util.isNumber(invocation.getArgument(0).getType()) && types()
|
||||
.isSubtype(invocation.getMethod().getEnclosingElement().asType(), util().getType(List.class))) {
|
||||
print(invocation.getTargetExpression(), delegate).print(".splice(")
|
||||
.printArgList(invocation.getArguments()).print(", 1)");
|
||||
} else {
|
||||
print("(a => a.splice(a.indexOf(").print(invocation.getArgument(0)).print(")")
|
||||
.print(invocation.getArgumentCount() == 1 ? "" : ", ")
|
||||
.printArgList(invocation.getArgumentTail()).print(", 1))(");
|
||||
print("(a => { let index = a.indexOf(").print(invocation.getArgument(0))
|
||||
.print("); if(index>=0) { a.splice(index").print(invocation.getArgumentCount() == 1 ? "" : ", ")
|
||||
.printArgList(invocation.getArgumentTail())
|
||||
.print(", 1); return true; } else { return false; }})(");
|
||||
print(invocation.getTargetExpression(), delegate).print(")");
|
||||
}
|
||||
return true;
|
||||
@ -1109,7 +1111,8 @@ public class RemoveJavaDependenciesAdapter extends Java2TypeScriptAdapter {
|
||||
return true;
|
||||
case "size":
|
||||
printMacroName(targetMethodName);
|
||||
print(invocation.getTargetExpression(), delegate).print(".length");
|
||||
print("(<number>");
|
||||
print(invocation.getTargetExpression(), delegate).print(".length)");
|
||||
return true;
|
||||
case "get":
|
||||
case "elementAt":
|
||||
|
||||
@ -93,6 +93,8 @@ public class UtilSupport implements Util {
|
||||
return context.symtab.noSuchFieldErrorType;
|
||||
case "java.lang.Throwable":
|
||||
return context.symtab.throwableType;
|
||||
case "java.util.List":
|
||||
return context.symtab.listType;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -73,6 +73,24 @@ public class Maps {
|
||||
trace.push("" + e.getValue());
|
||||
}
|
||||
|
||||
Map<String, Integer> m3 = new HashMap<>();
|
||||
m3.put("a", 1);
|
||||
assert m3.size() == 1;
|
||||
m3.remove("a");
|
||||
assert m3.size() == 0;
|
||||
m3.put("b", 2);
|
||||
m3.remove("a");
|
||||
assert m3.size() == 1;
|
||||
|
||||
Map<Integer, Integer> m4 = new HashMap<>();
|
||||
m4.put(1, 1);
|
||||
assert m4.size() == 1;
|
||||
m4.remove(1);
|
||||
assert m4.size() == 0;
|
||||
m4.put(2, 2);
|
||||
m4.remove(1);
|
||||
assert m4.size() == 1;
|
||||
|
||||
$export("trace", trace.join(","));
|
||||
|
||||
}
|
||||
|
||||
@ -21,6 +21,25 @@ public class Sets {
|
||||
System.out.println(map.get(s));
|
||||
// TODO: make this work (see #196)
|
||||
// assert "bye".equals(map.get(s));
|
||||
|
||||
Set<String> s3 = new HashSet<>();
|
||||
s3.add("1");
|
||||
assert s3.size() == 1;
|
||||
assert s3.remove("1");
|
||||
assert s3.size() == 0;
|
||||
s3.add("2");
|
||||
assert !s3.remove("1");
|
||||
assert s3.size() == 1;
|
||||
|
||||
Set<Integer> s4 = new HashSet<>();
|
||||
s4.add(1);
|
||||
assert s4.size() == 1;
|
||||
assert s4.remove(1);
|
||||
assert s4.size() == 0;
|
||||
s4.add(2);
|
||||
assert !s4.remove(1);
|
||||
assert s4.size() == 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user