ich auf ein seltsames Verhalten von Google Schließung Compiler, ADVANCED Modus gestolpert, und ich kann keine Erklärung finden: es umbenennt Funktion resetTransform von CanvasRenderingContext2DCanvasRenderingContext2D resetTransform und Google Schließung Compiler
da das Problem in der Produktion arised Code ich kann hier nicht copy-paste, aber ich habe in der Lage, das Problem in einem Fall, hier https://www.dropbox.com/s/ic9l755dvgkkqv7/case.zip?dl=0
die in klaren problematischen Code-Schnipsel zu reproduzieren:
context.resetTransform()
context.translate (0 , canvas.height)
die mit dem Compiler-Ausgang entspricht:
c.a();c.translate(0,b.height);
wenn ich mich nicht irre, sollte resetTransform seinen Namen behalten, da sie zu den anderen Mitgliedern des CanvasRenderingContext2D zum Beispiel passieren, nur zu übersetzen. der Browser kann die "a" -Funktion nicht finden und generiert "TypeError: ca ist keine Funktion"
"c" ist eigentlich eine Instanz von CanvasRenderingContext2D, in der Tat, wenn ich ca zu c.resetTransform, das Skript funktioniert perfekt.
was mache ich falsch?
hatten keine Hinweise über dieses Problem überall
derzeit die neueste Compiler-Version mit mir, heruntergeladen von: https://dl.google.com/closure-compiler/compiler-latest.zip
Java-Version 1.7.0_80 si, aber das Problem weiterhin besteht auch bei einer älteren
BTW, sollten Sie dies wahrscheinlich als "Javascript" -Frage markieren, nicht "Java" (natürlich Closure-Compiler ist in Java geschrieben, aber Ihre Frage ist über Javascript). – owler