summaryrefslogtreecommitdiff
path: root/tests/examplefiles/evil_regex.js
diff options
context:
space:
mode:
authorthatch <devnull@localhost>2009-06-21 14:42:13 -0700
committerthatch <devnull@localhost>2009-06-21 14:42:13 -0700
commit0878247fbf35cd847ae458970f04f10a48e8e873 (patch)
tree94e6a427b3bd3833d4bbb26fc5fdcbc653ad1d78 /tests/examplefiles/evil_regex.js
parent089200cd819b04e3fe6f456ddd8cad26c126fd83 (diff)
downloadpygments-0878247fbf35cd847ae458970f04f10a48e8e873.tar.gz
#403: Make JS regex parsing better, by Pumbaa80
Diffstat (limited to 'tests/examplefiles/evil_regex.js')
-rw-r--r--tests/examplefiles/evil_regex.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/examplefiles/evil_regex.js b/tests/examplefiles/evil_regex.js
new file mode 100644
index 00000000..3839c3f4
--- /dev/null
+++ b/tests/examplefiles/evil_regex.js
@@ -0,0 +1,48 @@
+/regexp/.test(foo) || x = [/regexp/,/regexp/, /regexp/, // comment
+// comment
+/regexp/];
+if (/regexp/.test(string))
+{/regexp/.test(string);};
+x =/regexp/;
+x = /regexp/;
+if (0</regexp/.exec(string) || 1>/regexp/.exec(string))
+x = { u:/regexp/, v: /regexp/ };
+foo();/regexp/.test(string); /regexp/.test(string);
+if (!/regexp/) foobar();
+x = u %/regexp/.exec(string) */regexp/.exec(string) / /regexp/.exec(string);
+x = u?/regexp/.exec(string) : v +/regexp/.exec(string) -/regexp/.exec(string);
+a = u^/regexp/.exec(string) &/regexp/.exec(string) |/regexp/.exec(string) +~/regexp/.exec(string);
+x = /regexp/ /* a comment */ ;
+x = /[reg/exp]/;
+x = 4/2/i;
+x = (a == b) ?/* this is a comment */ c : d;
+/// a comment //
+a = /regex//2/1; //syntactically correct, returns NaN
+
+
+
+
+/* original examples */
+
+// regex
+
+blah(/abc/);
+x = /abc/;
+x = /abc/.match;
+
+// math
+
+blah(1/2); //comment
+x = 1 / 2 / 3;
+x = 1/1/.1;
+
+// broken
+
+x=/1/;
+x=1/a/g;
+x=a/a/g;
+
+// real-world
+
+var x = 1/(1+Math.sqrt(sum)); // convert to number between 1-0
+return Math.round((num / den) * 100)/100;