From 22ff4bd976da24205eaf6d5997dcc006ad671db1 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Thu, 5 Oct 2017 22:06:14 -0700 Subject: [PATCH] server-side rewrite: more careful '|| this || that' rewriting to exclude regex '||this|that' --- pywb/rewrite/regex_rewriters.py | 2 +- pywb/rewrite/test/test_regex_rewriters.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pywb/rewrite/regex_rewriters.py b/pywb/rewrite/regex_rewriters.py index afba0031..cfb7b1db 100644 --- a/pywb/rewrite/regex_rewriters.py +++ b/pywb/rewrite/regex_rewriters.py @@ -196,7 +196,7 @@ if (!self.__WB_pmw) {{ self.__WB_pmw = function(obj) {{ return obj; }} }}\n\ (r'(?<=[\n])\s*this\b(?=(?:\.(?:{0})\b))'.format(prop_str), self.replace_str(';' + self.THIS_RW), 0), (r'(?>> _test_js_obj_proxy('var foo = that || this ;') 'var foo = that || (this && this._WB_wombat_obj_proxy || this) ;' +>>> _test_js_obj_proxy('a||this||that') +'a||(this && this._WB_wombat_obj_proxy || this)||that' + +>>> _test_js_obj_proxy('a||this)') +'a||(this && this._WB_wombat_obj_proxy || this))' + # not rewritten >>> _test_js_obj_proxy('var window = this$') 'var window = this$' @@ -170,6 +176,12 @@ r""" >>> _test_js_obj_proxy('|||this|||') '|||this|||' +>>> _test_js_obj_proxy('a||this|that') +'a||this|that' + +>>> _test_js_obj_proxy('a||this$') +'a||this$' + >>> _test_js_obj_proxy('return this.foo') 'return this.foo'