I just have a guess for you. AudioContext.decodeAudioData parameters are declared as ArrayBuffer, Function, Function but you are passing "data" which is a String not an ArrayBuffer. Maybe the type inference thinks you are calling a method that is not defined in the externs?
Maybe it will work if you pass an ArrayBuffer? Other than that I see no reason why it would munge the name. /thomas On Wednesday, January 28, 2015 at 2:14:31 AM UTC+1, Crispin Wellington wrote: > > Hi there, > > I have been trying to compile some audio code in clojurescript in advanced > mode. I have setup the w3c_audio.js extern (from: > http://closureplease.com/externs/) into my extern list. When I compile, > it prevents the munging of "AudioContext" (without the extern, this is > being munged, so the extern is 'working'). But it doesn't prevent the > munging of methods on AudioContext object. > > A super minimal example (but not working code): > > (def audio-context (js/AudioContext.)) > (.decodeAudioData audio-context "data" #(println "ok" %) #(println "error" > %)) > > compiles with advanced to: > > ;var zv = new AudioContext; > zv.Rd("data", function(a) { > return fo.c(mh([a], 0)); > }, function() { > return(0).call(null); > }); > > zv.Rd is wrong. It should be zv.decodeAudioData. > > The externs file does indeed have this function prototype. here are the > excerpts: > > /** > * @constructor > */ > var AudioContext = function() {}; > > .... > > /** > * @param {ArrayBuffer} audioData > * @param {Function} successCallback > * @param {Function=} errorCallback > */ > AudioContext.prototype.decodeAudioData = function(audioData, > successCallback, > errorCallback) {}; > > Why would closure compiler protect the AudioContext name, but munge the > decodeAudioData name? What am I doing wrong? > > Regards > > Crispin Wellington > > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.