CSET库中的语法错误

时间:2009-07-19 22:30:15

标签: javascript syntax safari google-chrome

我正在使用CSET,一个用于Javascript的Unicode字符类的库。它在Firefox,IE8和Opera中运行良好,但在谷歌浏览器和Safari 4中出现语法错误。奇怪的是,语法错误是不同的。

来自cset_production.js

Safari浏览器

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的解析器在此行中出错是否正确?

1 个答案:

答案 0 :(得分:0)

如果import作为对象属性,则Safari会出现问题。此外,它被源代码中的unicode字符搞糊涂了。纠正这两个问题会导致Chrome遇到问题。

Chrome的问题(以及之后Safari的问题)很容易修复。

我已经联系了CSET的作者,希望这些问题将在另一个版本中修复。

已发布新版CSET,可纠正这些问题。