Run a `lein deps :tree` to compare the version of the Google Closure Compiler you are getting.
David On Wed, Jan 28, 2015 at 9:58 AM, Crispin Wellington < retrogradeor...@gmail.com> wrote: > OK something very strange is going on. I tried the let block, and it was > the same in my project. > > So I created a new minimal project, lein new mies test-sound, and made a > minimal test: https://github.com/retrogradeorbit/test-sound > > And here it works! > > Go back to my old project, and it doesn't. > > So now I have to go and gradually work through the project differences to > see what's causing this. If I find anything, I'll post it. > > Thanks for your help > > Crispin > > On Wednesday, January 28, 2015 at 10:06:52 PM UTC+8, David Nolen wrote: >> >> I mentioned trying this in a `let` binding instead. What happens when you >> try that? >> >> David >> >> On Wed, Jan 28, 2015 at 9:04 AM, Crispin Wellington <retrogr...@gmail.com >> > wrote: >> >>> No, that's not it. So I tried: >>> >>> (def audio-context (js/AudioContext.)) >>> (.decodeAudioData audio-context (js/ArrayBuffer. 256) #(println "ok" %) >>> #(println "error" %)) >>> >>> and it compiled to: >>> >>> ;var zv = new AudioContext; >>> zv.Rd(new ArrayBuffer(256), function(a) { >>> return fo.c(mh(["ok", a], 0)); >>> }, function(a) { >>> return fo.c(mh(["error", a], 0)); >>> }); >>> >>> This has really got me stumped. >>> >>> Crispin >>> >>> >>> On Wednesday, January 28, 2015 at 6:23:29 PM UTC+8, Thomas Heller wrote: >>>> >>>> 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 clo...@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+u...@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+u...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > 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. > -- 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.