我正在使用CSET,一个用于Javascript的Unicode字符类的库。它在Firefox,IE8和Opera中运行良好,但在谷歌浏览器和Safari 4中出现语法错误。奇怪的是,语法错误是不同的。
SyntaxError: Parse error
(line 255)
CSET=function(){
// ...
var g=this
return {import:function(prefix,object){object=object||g
var i,l,e,es= // SyntaxError: Parse error (line 255)
[['fromChar',fC]
,['fromInt',fI]
,['universe',U]
,['nil',nil]
,['empty',empty]
,['singleton',one]
,['fromIntRange',fIR]
,['fromCharRange',fCR]
,['fromUnicodeGeneralCategory',fGC]
,['complement',comp]
,['fromList',fL]
,['fromString',fS]
,['member',member]
,['difference',diff]
,['union',union]
,['intersection',inter]
,['toRegex',reCC]
,['show',show]
]
for(i=0,l=es.length;i<l,e=es[i];i++)
object[(prefix||'')+e[0]]=e[1]}}
}();
Safari的语法错误的原因是什么?我该怎么做才能解决问题?
uncaught exception SyntaxError: Invalid left-hand side in assignment
[hi,lo]=surrogatePair(c) // Line 200
法律代码是否会调用此错误?或者Google Chrome的解析器在此行中出错是否正确?
答案 0 :(得分:0)
如果import
作为对象属性,则Safari会出现问题。此外,它被源代码中的unicode字符搞糊涂了。纠正这两个问题会导致Chrome遇到问题。
Chrome的问题(以及之后Safari的问题)很容易修复。
我已经联系了CSET的作者,希望这些问题将在另一个版本中修复。
已发布新版CSET,可纠正这些问题。