diff options
author | thatch <devnull@localhost> | 2009-06-21 14:42:13 -0700 |
---|---|---|
committer | thatch <devnull@localhost> | 2009-06-21 14:42:13 -0700 |
commit | 0878247fbf35cd847ae458970f04f10a48e8e873 (patch) | |
tree | 94e6a427b3bd3833d4bbb26fc5fdcbc653ad1d78 /tests/examplefiles/evil_regex.js | |
parent | 089200cd819b04e3fe6f456ddd8cad26c126fd83 (diff) | |
download | pygments-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.js | 48 |
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; |