Make test for using Pale Moon workaround stricter.

This commit is contained in:
ccd0 2015-08-20 01:25:22 -07:00
parent 50bbb9010f
commit 2a8f6e8cc4

View File

@ -226,23 +226,24 @@ $.event = (event, detail, root=d) ->
<% if (type === 'userscript') { %>
# XXX Make $.event work in Pale Moon with GM 3.x (no cloneInto function).
unless typeof cloneInto is 'function' or /^[01]\./.test(GM_info.version) or GM_info.scriptHandler # not FF30+, GM1-, or Tampermonkey
do ->
try
new CustomEvent 'x', detail: {}
catch err
unsafeConstructors =
Object: unsafeWindow.Object
Array: unsafeWindow.Array
clone = (obj) ->
if obj? and typeof obj is 'object' and (constructor = unsafeConstructors[obj.constructor.name])
obj2 = new constructor()
obj2[key] = clone val for key, val of obj
obj2
else
obj
$.event = (event, detail, root=d) ->
root.dispatchEvent new CustomEvent event, {bubbles: true, detail: clone detail}
do ->
return unless /PaleMoon\//.test(navigator.userAgent) and +GM_info?.version?.split('.')[0] >= 2 and typeof cloneInto is 'undefined'
try
new CustomEvent 'x', detail: {}
catch err
unsafeConstructors =
Object: unsafeWindow.Object
Array: unsafeWindow.Array
clone = (obj) ->
if obj? and typeof obj is 'object' and (constructor = unsafeConstructors[obj.constructor.name])
obj2 = new constructor()
obj2[key] = clone val for key, val of obj
obj2
else
obj
$.event = (event, detail, root=d) ->
root.dispatchEvent new CustomEvent event, {bubbles: true, detail: clone detail}
<% } %>
$.open =