Value is not a sequence Safari exception

2019-04-04 13:49发布

问题:

I'm getting this error on any console.log statement in my codebase. This affects only Safari 11.0 (12604.1.38.1.7) on Mac 10.16.6

How can i resolve this and how this happened?

回答1:

You need to disable the "WebDriver" extension.

I had this same problem, and my stack trace included a resource called "Script element" which was making this call:

b.initMessageEvent("safaridriver.message", !1, !1, a, window.location.origin, "0", window, null);

Maybe there's a SafariDriver update out there that also fixes this?



回答2:

The main answer here, led me down the wrong path.

Some notes:

  • My console.log works just fine in Safari 12.0.3 with no issues what so ever
  • The original error of "Value is not a sequence" can be encountered for several different reasons
  • I found I was getting the error because my self.postMessage() had two arguments instead of one
    • TypeScript thinks self.postMessage() is supposed to have two arguments
    • Safari threw error because my second postMessage argument was null

My code was:

self.postMessage(data,null)

Now my working code is:

const selfie: Worker = self as any;

selfie.postMessage(data)

I find my answer to be relevant because others will use TypeScript and think self.postMessage() needs to have two arguments... And then Safari will break if the second argument is null like several online articles recommend to use.