Chrome has a DOMWindow, whereas other browsers have just a Window object. The JavaScript code that we generate for setTimeout expects only a DOMWindow, causing a noSuchMethod exception to be thrown when run in another browser (say, Firefox). varMethod("setTimeout$2", { "DOMWindow": function($0, $1) { return this.setTimeout($wrap_call$0(to$call$0($0)), $1); }, "WorkerContext": function($0, $1) { return this.setTimeout($wrap_call$0(to$call$0($0)), $1); }, "Object": function($0, $1) { return this.noSuchMethod("setTimeout", [$0, $1]); } }