fix #1413 Invalid number value breaks CSS mode
This commit is contained in:
parent
d7b62038c0
commit
495318ef6b
3 changed files with 10 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
|||
.text-layer {
|
||||
font-family: Monaco, "Courier New", monospace;
|
||||
font-size: 12px;
|
||||
font-size: 12pX;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
["support.type","font-size"],
|
||||
["text",": "],
|
||||
["constant.numeric","12"],
|
||||
["keyword","px"],
|
||||
["keyword","pX"],
|
||||
["text",";"]
|
||||
],[
|
||||
"ruleset",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ var Tokenizer = function(rules) {
|
|||
var mapping = this.matchMappings[key] = {defaultToken: "text"};
|
||||
var flag = "g";
|
||||
|
||||
var spliterRurles = [];
|
||||
for (var i = 0; i < state.length; i++) {
|
||||
var rule = state[i];
|
||||
if (rule.defaultToken)
|
||||
|
|
@ -104,7 +105,7 @@ var Tokenizer = function(rules) {
|
|||
adjustedregex = this.removeCapturingGroups(rule.regex);
|
||||
}
|
||||
if (!rule.splitRegex && typeof rule.token != "string")
|
||||
rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);
|
||||
spliterRurles.push(rule); // flag will be known only at the very end
|
||||
}
|
||||
|
||||
mapping[matchTotal] = i;
|
||||
|
|
@ -117,6 +118,10 @@ var Tokenizer = function(rules) {
|
|||
rule.onMatch = null;
|
||||
rule.__proto__ = null;
|
||||
}
|
||||
|
||||
spliterRurles.forEach(function(rule) {
|
||||
rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);
|
||||
}, this);
|
||||
|
||||
this.regExps[key] = new RegExp("(" + ruleRegExps.join(")|(") + ")|($)", flag);
|
||||
}
|
||||
|
|
@ -146,6 +151,8 @@ var Tokenizer = function(rules) {
|
|||
if (!str)
|
||||
return [];
|
||||
var values = this.splitRegex.exec(str);
|
||||
if (!values)
|
||||
return "text";
|
||||
var tokens = [];
|
||||
var types = this.tokenArray;
|
||||
for (var i = 0, l = types.length; i < l; i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue