playcanvas / engine

JavaScript game engine built on WebGL, WebGPU, WebXR and glTF

Home Page:https://playcanvas.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1.70 Release UMD-via-import regression

kungfooman opened this issue · comments

footer: isUMD ? 'this.pcx = pc;' : undefined

This prevents UMD builds being loaded via import(), which some setups do - and it should be no problem to do so. We have builds that follow the UMD protocol via the following check since Google Closure compiler times and I would like to keep it that way:

global = typeof globalThis !== 'undefined' ? globalThis : global || self

How it used to work:

await Promise.all([
  import("https://code.playcanvas.com/playcanvas-1.40.0.js"), // 1.4...
  import("https://code.playcanvas.com/playcanvas-1.41.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.42.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.50.0.js"), // 1.5...
  import("https://code.playcanvas.com/playcanvas-1.51.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.52.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.53.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.54.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.55.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.60.0.js"), // 1.6...
  import("https://code.playcanvas.com/playcanvas-1.61.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.62.0.js"),
  import("https://code.playcanvas.com/playcanvas-1.63.0.js"),
  // import("https://code.playcanvas.com/playcanvas-1.70.0.js"), // nope
]);

Result: [Module, Module, Module, Module, Module, Module, Module, Module, Module, Module, Module, Module, Module]

Mini repro of bug:

await import("https://code.playcanvas.com/playcanvas-1.70.0.js");

Error:

playcanvas-1.70.0.js:84055 Uncaught TypeError: Cannot set properties of undefined (setting 'pcx')
    at playcanvas-1.70.0.js:84054:10
(anonym)	@	playcanvas-1.70.0.js:84054

image