Internet Explorer 11 compatibility?

Yes, I know. It’s an old [and no longer supported browser - Oops! Actually Microsoft still supports it] browser. But the problem I have is that our app made with the current engine (PlayCanvas Engine v1.23.4 revision 94239d4) simply stalls on the load screen and never finishes loading. The error message in the console is:

SCRIPT5009: 'LoadModules' is undefined
__start__.js (153,9)

The code on line 152 and 153 is:

    if (PRELOAD_MODULES.length > 0) {
        loadModules(PRELOAD_MODULES, ASSET_PREFIX, configure);

It isn’t particularly important that I be able to load on IE 11. But it is important that the app not just hang. Is there a way to capture this error and alert the user that their browser will be unable to load the app and that they should use a more current browser? Or maybe it actually should load. IE 11 loaded our app made with 1.15.8 just fine.

This sounds like a bug/feature introduced that broke IE11 compatibility. It seems to be complaining on the new WASM modules that were introduced for physics (and other stuff coming).

I am not sure if that was done on purpose or accidentally broke IE11 support. I would say raise an issue on the engine github repo about it, it feels quite important:

OK. That was super useful. It prompted me to investigate the new WASM modules and I found this link:
https://developer.playcanvas.com/en/user-manual/physics/physics-migration/

So I decided to just get rid of the new WASM files (deleted) and use the legacy physics instead.

The good news is that I can now publish the app to a website and it will load just fine in IE11 and everything checked so far works just fine … even Ermis Object Outline. The bad news is that the app won’t launch from editor on IE11. I can only run the app on IE11 by publishing. The error on launching is different. The load screen doesn’t even get started. The error reported is:

SCRIPT1002: Syntax error
launch.js (4362, 34)

Lines 4361 and 4362 are:

utils.proxy = function (targetClass, memberName, properties) {
    properties.forEach(property => {

and the failure seems be be at the “=>”

This is a perfectly sufficient workaround for my current situation. But since IE11 is supposedly going to be supported by Microsoft so long as Windows 10 is supported, I think that compatibility with that browser, or at least a clean way to alert users when an app isn’t compatibility matters more than I first thought.

As for reporting this on gitHub, I guess I don’t get why reporting an incompatibility here shouldn’t suffice. Do I really have to get on a developer’s platform in order to make such a basic report?

But anyway, thanks a bunch. That clue helped a lot.

Glad you were able to find an alternative. @will or @vaios might be able to shed some light on why the editor fails to launch the app on IE11.

Regarding github, certainly you are not required to do that. The Playcanvas engine being open source, brings together a lot of people working on it alongside with the Playcanvas team to further develop it. Reporting an issue on the engine repository can potentially help resolve it faster, everyone benefits from that.

The Editor no longer supports IE11. We’ve started embracing ES6, a lot of which IE11 doesn’t support. Yes, we could use Babel. But we don’t. Since almost nobody uses IE11 to develop with any more, it’s not a big deal.

2 Likes

Fair enough. But I thought one of the features of WASM was that it should be able to fall back to regular javascript if the browser doesn’t support WASM. So is my solution of simply not using WASM modules the correct forward going solution or is that something that should be addressed?

Yeah, that’s a bug. Can you log the 'LoadModules' is undefined bug on GH please?

I’ll give it a shot. But I’ve never done anything on GitHub. We’ll see how that goes.

OK. I think I got the issue posted.

Great! Posting here for reference: