jmmk / javascript-externs-generator

Generate externs for use with Google Closure Compiler
https://jmmk.github.io/javascript-externs-generator/
ISC License
135 stars 9 forks source link

Cannot create externs for Phaser 3 #39

Open chilliams opened 6 years ago

chilliams commented 6 years ago

I'm using this URL: https://cdn.jsdelivr.net/npm/phaser@3.6.0/dist/phaser.js

I get this error: "TypeError: a.F is not a function. Check console for stack trace."

jmmk commented 6 years ago

It works when I run it without advanced compilation, so I'm not sure what's going on there.

I found a potential fix - replacing the ClojureScript set (#{}) with an ES6 Set, but I noticed a regression that comes as a side effect if multiple references to an object are held (the second time the object is encountered it is ignored), so I'm exploring a little more.

I think keeping a set of "path names" like #{Phaser.Cameras.Controls.Fixed.X, Phaser.Cameras.Controls.FixedKeyControl.Y} instead of a set of object references might work and would allow multiple properties to point to the same object (in Phaser specifically there are some deprecated properties, and even though they reference the same thing both the old and the new should be surfaced)