diff options
author | Michael Leibman <michael.leibman@gmail.com> | 2013-07-11 10:53:52 -0700 |
---|---|---|
committer | Michael Leibman <michael.leibman@gmail.com> | 2013-07-11 10:53:52 -0700 |
commit | 9a7e510e46452c1f5a0781d607f63566e2a65f3a (patch) | |
tree | 6996111255ce4b830b722695f8e5bd75f6e53668 /slick.dataview.js | |
parent | 5952bc6282c4d04cc893cd6319b6c80157808f95 (diff) | |
parent | d773a09d0f7daaad8bdba6f6668a622544ee6ebf (diff) | |
download | SlickGrid-9a7e510e46452c1f5a0781d607f63566e2a65f3a.zip SlickGrid-9a7e510e46452c1f5a0781d607f63566e2a65f3a.tar.gz SlickGrid-9a7e510e46452c1f5a0781d607f63566e2a65f3a.tar.bz2 |
Merge pull request #587 from pandell/fix-inline-filters
Improve `return` matching for inlined filter functions
Diffstat (limited to 'slick.dataview.js')
-rw-r--r-- | slick.dataview.js | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/slick.dataview.js b/slick.dataview.js index 45439b6..5bee4ff 100644 --- a/slick.dataview.js +++ b/slick.dataview.js @@ -613,10 +613,10 @@ var filterInfo = getFunctionInfo(filter); var filterBody = filterInfo.body - .replace(/return false[;}]/gi, "{ continue _coreloop; }") - .replace(/return true[;}]/gi, "{ _retval[_idx++] = $item$; continue _coreloop; }") - .replace(/return ([^;}]+?);/gi, - "{ if ($1) { _retval[_idx++] = $item$; }; continue _coreloop; }"); + .replace(/return false\s*([;}]|$)/gi, "{ continue _coreloop; }$1") + .replace(/return true\s*([;}]|$)/gi, "{ _retval[_idx++] = $item$; continue _coreloop; }$1") + .replace(/return ([^;}]+?)\s*([;}]|$)/gi, + "{ if ($1) { _retval[_idx++] = $item$; }; continue _coreloop; }$2"); // This preserves the function template code after JS compression, // so that replace() commands still work as expected. @@ -645,10 +645,10 @@ var filterInfo = getFunctionInfo(filter); var filterBody = filterInfo.body - .replace(/return false[;}]/gi, "{ continue _coreloop; }") - .replace(/return true[;}]/gi, "{ _cache[_i] = true;_retval[_idx++] = $item$; continue _coreloop; }") - .replace(/return ([^;}]+?);/gi, - "{ if ((_cache[_i] = $1)) { _retval[_idx++] = $item$; }; continue _coreloop; }"); + .replace(/return false\s*([;}]|$)/gi, "{ continue _coreloop; }$1") + .replace(/return true\s*([;}]|$)/gi, "{ _cache[_i] = true;_retval[_idx++] = $item$; continue _coreloop; }$1") + .replace(/return ([^;}]+?)\s*([;}]|$)/gi, + "{ if ((_cache[_i] = $1)) { _retval[_idx++] = $item$; }; continue _coreloop; }$2"); // This preserves the function template code after JS compression, // so that replace() commands still work as expected. |