Since the minifier will remove any unused function expressions for us,
we don't need to jump through that hoop. There is a possibility that
there are some references inside that function that could be further
cleaned up by us that then minifier won't catch, but I'm not really sure
it's worth worrying about since this seems pretty edge-casey. If we want
to go down that path, instead of skipping over these nodes, we would
probably want to remove them but in the wrap mode replace it with a
function that returns an object instead of an object.
Starting with 0.4.15, incorrect code is generated when using the
mode: "wrap"
setting for a prop-type like thisThe code generated for the prop-type is
which will result in an error when
NODE_ENV === "production"
because{}
is not a function.A working example of the bug can be found here: https://github.com/dirkholsopple/prop-type-removal-bug-reproduction
Since the minifier will remove any unused function expressions for us, we don't need to jump through that hoop. There is a possibility that there are some references inside that function that could be further cleaned up by us that then minifier won't catch, but I'm not really sure it's worth worrying about since this seems pretty edge-casey. If we want to go down that path, instead of skipping over these nodes, we would probably want to remove them but in the wrap mode replace it with a function that returns an object instead of an object.
Fixes #153
cc @dirkholsopple