RES does not work in Chrome 53/54 #3342

Closed
BenMcGarry opened this Issue Sep 2, 2016 · 19 comments

Projects

None yet

10 participants

@BenMcGarry
Collaborator
BenMcGarry commented Sep 2, 2016 edited

Appears to be a result of a Chromium bug which was resolved yesterday. We are awaiting for this to hit stable branch. It might and might not work depending on Chrome ver and OS.

No known work around as of now.

@slikts
slikts commented Sep 2, 2016

Was this release not tested outside of Canary?

@vramana
vramana commented Sep 2, 2016

Can generators be transpiled and run using rengeneratorRuntime till we get a fix in chrome?

@Ajedi32
Contributor
Ajedi32 commented Sep 2, 2016 edited

This is the cause of #3339 and #3344, right?

@BenMcGarry
Collaborator

@Ajedi32 Yep

@Ajedi32
Contributor
Ajedi32 commented Sep 2, 2016

Interesting to note that RES doesn't seem to be broken for me in Chrome 53.0.2785.89 m on Windows 7 with a fresh install of RES 5.0.0.1.

Is this only an issue for users who have chrome://flags/#enable-javascript-harmony enabled? Some users have reported that turning that setting off fixes the issue.

@RicardoDMelo

Turning this flag off don't work for me. I'm on Chrome 53.0.2785.89 and Windows 10.

@larsjohnsen
Contributor

@RicardoDMelo Could you try using RES with another Windows user account? That should create a fresh Chrome profile, which may reveal that the cause is failed Chrome upgrade migration.

@erikdesjardins
Collaborator
erikdesjardins commented Sep 2, 2016 edited

@slikts Of course it was tested in stable Chrome. I mentioned Canary in that thread cause that's where I would expect it to break.

Works on my machineTM (sorry)

image

@chevex
chevex commented Sep 2, 2016 edited

I'm on Macbook Pro running OSX 10.11.6 and using Chrome version 53.0.2785.89 (64-bit). Disabling the harmony flag fixed the issue for me.

@RicardoDMelo At the bottom of the screen chrome prompts you to click "relaunch" after disabling this flag. I missed it the first time and simply closed the tab and wondered why it was still broken. Did you perhaps miss that you needed to relaunch Chrome? Once I did that RES started working as expected.

If that generator bug is indeed the issue here then disabling harmony should be the defacto work around since es6 generator functions are only enabled under that flag. I'm guessing with it disabled RES must use some sort of shim to get generator functionality and must not use the shim when harmony generators are available.

@RicardoDMelo

@chevex You nailed it. I missed the button too. Now it works!

@erikdesjardins
Collaborator
erikdesjardins commented Sep 2, 2016 edited

es6 generator functions are only enabled under that flag

Slight correction here: Chrome now supports all of ES6 (more-or-less) without that flag, including generators:

image

At this point, that flag enables tail-call optimization/syntactic tail calls, async/await (maybe), and some other experimental things. I wouldn't suggest you enable it for JS development.

@Ajedi32
Contributor
Ajedi32 commented Sep 2, 2016

Alright, so I just talked to another user for whom turning off the flag didn't work, and it turns out he was using the dev channel of Chrome, which has tail call optimizations enabled even without the flag.

So for users affected by this issue:

  1. Make sure the setting at chrome://flags/#enable-javascript-harmony is disabled. If it is enabled, disable it and restart your browser.
  2. If you're using the dev channel of Chrome, switch to the stable or beta channels.

Doing those two steps should solve the problem. In any case, Chrome will likely fix this issue soon. It's already fixed in Canary, so it's only a matter of time before those fixes make their way into the other release channels.

@chevex
chevex commented Sep 3, 2016

So they aren't using a shim, they're just using stable generators and the optimization change broke them. Gotcha. Thanks for the correction @erikdesjardins.

Thanks @Ajedi32 for letting us know what you found :)

@thibault-ml
thibault-ml commented Sep 4, 2016 edited

Interestingly enough, I have two 10.11.6 machines running 54.0.2840.8 dev (64-bit), and RES works in one of them, but not the other! The chrome://flags/#enable-javascript-harmony is disabled in both.

Is there anything I could provide to help, or is the strategy to wait for the upstream fix in Chrome?

@Ajedi32
Contributor
Ajedi32 commented Sep 4, 2016 edited

@thibault-ml That's really strange. Based on what I've heard so far, RES shouldn't be working on either of those computers since they're both using the dev version of Chrome. (Assuming they're both running the exact same version of the dev channel.)

I believe since this problem doesn't affect the stable version of Chrome (unless you opt in to an experimental flag) and because it's already fixed on the master branch of V8, the current plan is to just wait for the upstream fix to make its way into a release. Or at least, that's my understanding of the situation.

@oscillot
oscillot commented Sep 6, 2016 edited

Disabling the harmony flag worked for me on 53/OSX but I had to restart chrome fully (kill all BG process too, eg Postman, Authy)

@Ajedi32
Contributor
Ajedi32 commented Sep 6, 2016

Yep. To be clear, "Restart Chrome" in this instance means restarting all Chrome processes, not just closing the main Chrome window and reopening it. The chrome://flags page should provide a button that does that at the bottom of the screen after you change the setting.

@vramana
vramana commented Sep 9, 2016

RES working in Dev Channel (55.0.2853.0)

@BenMcGarry
Collaborator

Issue appears to be resolved in upstream builds and reports of issues in browser vers have stopped. Closed.

@BenMcGarry BenMcGarry closed this Sep 11, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment