class Test { boolean native isCancelled(); Node findRoot(Node n) { while(!isCancelled() && n.getParent() != null) { n = n.getParent(); } return n; } } interface Node { Node getParent(); }