Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/filterClasses.js

Issue 5055554716172288: Issue 653 -Object.defineProperty instead of defineGetter / defineSetter (Closed)
Patch Set: Created June 9, 2014, 9:29 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -468,17 +468,17 @@ function RegExpFilter(text, regexpSource
this.matchCase = matchCase;
if (thirdParty != null)
this.thirdParty = thirdParty;
if (regexpSource.length >= 2 && regexpSource[0] == "/" && regexpSource[regexpSource.length - 1] == "/")
{
// The filter is a regular expression - convert it immediately to catch syntax errors
let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), this.matchCase ? "" : "i");
- this.__defineGetter__("regexp", () => regexp);
+ Object.defineProperty(this, "regexp", {value: regexp});
}
else
{
// No need to convert this filter to regular expression yet, do it on demand
this.regexpSource = regexpSource;
}
}
exports.RegExpFilter = RegExpFilter;
@@ -524,20 +524,18 @@ RegExpFilter.prototype =
.replace(/\\\^/g, "(?:[\\x00-\\x24\\x26-\\x2C\\x2F\\x3A-\\x40\\x5B-\\x5E\\x60\\x7B-\\x7F]|$)")
.replace(/^\\\|\\\|/, "^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?") // process extended anchor at expression start
.replace(/^\\\|/, "^") // process anchor at expression start
.replace(/\\\|$/, "$") // process anchor at expression end
.replace(/^(\.\*)/, "") // remove leading wildcards
.replace(/(\.\*)$/, ""); // remove trailing wildcards
let regexp = new RegExp(source, this.matchCase ? "" : "i");
-
- delete this.regexpSource;
- this.__defineGetter__("regexp", () => regexp);
- return this.regexp;
+ Object.defineProperty(this, "regexp", {value: regexp});
+ return regexp;
},
/**
* Content types the filter applies to, combination of values from RegExpFilter.typeMap
* @type Number
*/
contentType: 0x7FFFFFFF,
/**
* Defines whether the filter should distinguish between lower and upper case letters
@@ -567,19 +565,20 @@ RegExpFilter.prototype =
{
return true;
}
return false;
}
};
-RegExpFilter.prototype.__defineGetter__("0", function()
+// Required to optimize Matcher, see also RegExpFilter.prototype.length
+Object.defineProperty(RegExpFilter.prototype, "0",
{
- return this;
+ get: function() { return this; }
});
/**
* Creates a RegExp filter from its text representation
* @param {String} text same as in Filter()
*/
RegExpFilter.fromText = function(text)
{

Powered by Google App Engine
This is Rietveld