Commit 8fc1b031ba734561fb12e9fa0c88c51a8bfecbe3

Golmote 2017-10-22T14:48:06

JSON: Regexp optimisation + don't use captures if not needed

diff --git a/components/prism-json.js b/components/prism-json.js
index 90c2598..f5d2793 100644
--- a/components/prism-json.js
+++ b/components/prism-json.js
@@ -1,14 +1,14 @@
 Prism.languages.json = {
-	'property': /"(?:\\.|[^\\"])*"(?=\s*:)/ig,
+	'property': /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,
 	'string': {
-		pattern: /"(?:\\.|[^\\"])*"(?!:)/g,
+		pattern: /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,
 		greedy: true
 	},
-	'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/g,
-	'punctuation': /[{}[\]);,]/g,
+	'number': /\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][+-]?\d+)?)\b/,
+	'punctuation': /[{}[\]);,]/,
 	'operator': /:/g,
-	'boolean': /\b(true|false)\b/gi,
-	'null': /\bnull\b/gi
+	'boolean': /\b(?:true|false)\b/i,
+	'null': /\bnull\b/i
 };
 
 Prism.languages.jsonp = Prism.languages.json;
diff --git a/components/prism-json.min.js b/components/prism-json.min.js
index 8a8623c..53c922d 100644
--- a/components/prism-json.min.js
+++ b/components/prism-json.min.js
@@ -1 +1 @@
-Prism.languages.json={property:/"(?:\\.|[^\\"])*"(?=\s*:)/gi,string:{pattern:/"(?:\\.|[^\\"])*"(?!:)/g,greedy:!0},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/g,punctuation:/[{}[\]);,]/g,operator:/:/g,"boolean":/\b(true|false)\b/gi,"null":/\bnull\b/gi},Prism.languages.jsonp=Prism.languages.json;
\ No newline at end of file
+Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][+-]?\d+)?)\b/,punctuation:/[{}[\]);,]/,operator:/:/g,"boolean":/\b(?:true|false)\b/i,"null":/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json;
\ No newline at end of file