Improve fuzzer. :) (#1665)
authorPeter van der Zee <qfox@users.noreply.github.com>
Sun, 26 Mar 2017 04:04:50 +0000 (06:04 +0200)
committerAlex Lam S.L <alexlamsl@gmail.com>
Sun, 26 Mar 2017 04:04:50 +0000 (12:04 +0800)
commitadb0e882e926249eada4f8f5afaae01aa469face
tree1fb97e2a9040ada1edeb7f250227d43c2c4c911c
parentf83d370f57c49e5112ac5ce74e27a0573265baf6
Improve fuzzer. :) (#1665)

@qfox Put value constants in a global constant 74c0fb9
 @qfox And the other string based values as well a5033c5
 @qfox Be more strict about parameters, allow max to be optional 9c7ce70
 @qfox Support a `V` (capital) flag to only log out at intervals 2d822c7
 @qfox Fewer magic variables a6a9a7c
 @qfox Fix decrement such that a function is created when n=1 7e4b017
 @qfox Add more values 64e596e
 @qfox Make `b` appear more often d33191a
 @qfox Add functions that contain (only..) functions 29a86e3
 @qfox Allow the block statement to contain multiple statements 7570484
 @qfox Make the interval count a constant d587ad8
 @qfox Enable mangling, disable post-processing  … 4dc8d35
 @qfox Add more simple value that may trigger syntactic errors 8496d58
 @qfox Add `else` to some `if` statements a4aed65
 @qfox Move iife to expr generator, fix missing recursion arg e453159
 @qfox Improve output on error where it wasnt printing the last code properly 4565a1a
 @qfox Add switch statement to generator ceafa76
 @qfox Add var statement, support optional comma for expr generator b83921b
 @qfox Expression generator should use a simple value instead of `0` as recu…  … 9d1a5c7
 @qfox const -> var to keep things es5... 0143099
 @qfox Add more simple values that may trigger edge cases 5e124f1
 @qfox Add central name generator, take special care for global functions aeb7682
 @qfox Add some `return` and function declaration cases to statement generator 6c9c3cc
 @qfox Exclude switches from generator for now 91124b2

Put value constants in a global constant

And the other string based values as well

Be more strict about parameters, allow max to be optional

Support a `V` (capital) flag to only log out at intervals

Fewer magic variables

Fix decrement such that a function is created when n=1

Add more values

Make `b` appear more often

Add functions that contain (only..) functions

Allow the block statement to contain multiple statements

Make the interval count a constant

Enable mangling, disable post-processing

Mangling is kind of the whole point...

Similarly, to beautify the minified code afterwards may supress bugs so it's probably best not to beautify the code prematurely. And there's no point anyways since you won't see it most of the time and only care about the main input anyways.

Add more simple value that may trigger syntactic errors

Add `else` to some `if` statements

Move iife to expr generator, fix missing recursion arg

Improve output on error where it wasnt printing the last code properly

Add switch statement to generator

Add var statement, support optional comma for expr generator

Expression generator should use a simple value instead of `0` as recursion default

const -> var to keep things es5...

Add more simple values that may trigger edge cases

Add central name generator, take special care for global functions

Add some `return` and function declaration cases to statement generator

Exclude switches from generator for now

Enable switch generation because #1667 was merged

Add typeof generator

Add some elision tests

Add a new edge case that returns an object explicitly

Add all binary ops to try and cover more paths

Forgot four binops and added `Math` to var name pool

Harden the incremental pre/postfix tests

Improve switch generator, allow `default` to appear at any clause index

Add try/catch/finally generation

Prevent function statements being generated

Add edge case with decremental op and a group

Disable switch generation until #1679 and #1680 are solved

Only allow `default` clause as last clause for now

Tentatively enable `throw`, `break` and `continue` statements when in valid contexts
test/ufuzz.js