| Index: third_party/WebKit/Source/devtools/front_end/audits/AuditFormatters.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/audits/AuditFormatters.js b/third_party/WebKit/Source/devtools/front_end/audits/AuditFormatters.js
|
| index cdcaa97fe8136ab44baef0f87fde0f6d5422518f..c89625b65dc38c7aa0c008cf4c6bfd8b1267daa1 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/audits/AuditFormatters.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/audits/AuditFormatters.js
|
| @@ -27,120 +27,108 @@
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
| -
|
| /**
|
| - * @constructor
|
| + * @unrestricted
|
| */
|
| -WebInspector.AuditFormatters = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.AuditFormatters.Registry = {
|
| -
|
| - /**
|
| - * @param {string} text
|
| - * @return {!Text}
|
| - */
|
| - text: function(text)
|
| - {
|
| - return createTextNode(text);
|
| - },
|
| +WebInspector.AuditFormatters = class {
|
| + /**
|
| + * @param {string|boolean|number|!Object} value
|
| + * @return {!Node}
|
| + */
|
| + apply(value) {
|
| + var formatter;
|
| + var type = typeof value;
|
| + var args;
|
|
|
| - /**
|
| - * @param {string} snippetText
|
| - * @return {!Element}
|
| - */
|
| - snippet: function(snippetText)
|
| - {
|
| - var div = createElement("div");
|
| - div.textContent = snippetText;
|
| - div.className = "source-code";
|
| - return div;
|
| - },
|
| + switch (type) {
|
| + case 'string':
|
| + case 'boolean':
|
| + case 'number':
|
| + formatter = WebInspector.AuditFormatters.Registry.text;
|
| + args = [value.toString()];
|
| + break;
|
|
|
| - /**
|
| - * @return {!Element}
|
| - */
|
| - concat: function()
|
| - {
|
| - var parent = createElement("span");
|
| - for (var arg = 0; arg < arguments.length; ++arg)
|
| - parent.appendChild(WebInspector.auditFormatters.apply(arguments[arg]));
|
| - return parent;
|
| - },
|
| + case 'object':
|
| + if (value instanceof Node)
|
| + return value;
|
| + if (Array.isArray(value)) {
|
| + formatter = WebInspector.AuditFormatters.Registry.concat;
|
| + args = value;
|
| + } else if (value.type && value.arguments) {
|
| + formatter = WebInspector.AuditFormatters.Registry[value.type];
|
| + args = value.arguments;
|
| + }
|
| + }
|
| + if (!formatter)
|
| + throw 'Invalid value or formatter: ' + type + JSON.stringify(value);
|
|
|
| - /**
|
| - * @param {string} url
|
| - * @param {string=} displayText
|
| - * @return {!Element}
|
| - */
|
| - url: function(url, displayText)
|
| - {
|
| - return WebInspector.linkifyURLAsNode(url, displayText, undefined, true);
|
| - },
|
| + return formatter.apply(null, args);
|
| + }
|
|
|
| - /**
|
| - * @param {string} url
|
| - * @param {number=} line
|
| - * @return {!Element}
|
| - */
|
| - resourceLink: function(url, line)
|
| - {
|
| - // FIXME: use WebInspector.Linkifier
|
| - return WebInspector.linkifyResourceAsNode(url, line, undefined, "resource-url webkit-html-resource-link");
|
| - }
|
| + /**
|
| + * @param {!Object} formatters
|
| + * @param {?Object} thisArgument
|
| + * @param {string|boolean|number|!Object} value
|
| + * @return {*}
|
| + */
|
| + partiallyApply(formatters, thisArgument, value) {
|
| + if (Array.isArray(value))
|
| + return value.map(this.partiallyApply.bind(this, formatters, thisArgument));
|
| + if (typeof value === 'object' && typeof formatters[value.type] === 'function' && value.arguments)
|
| + return formatters[value.type].apply(thisArgument, value.arguments);
|
| + return value;
|
| + }
|
| };
|
|
|
| -WebInspector.AuditFormatters.prototype = {
|
| - /**
|
| - * @param {string|boolean|number|!Object} value
|
| - * @return {!Node}
|
| - */
|
| - apply: function(value)
|
| - {
|
| - var formatter;
|
| - var type = typeof value;
|
| - var args;
|
| +WebInspector.AuditFormatters.Registry = {
|
| +
|
| + /**
|
| + * @param {string} text
|
| + * @return {!Text}
|
| + */
|
| + text: function(text) {
|
| + return createTextNode(text);
|
| + },
|
|
|
| - switch (type) {
|
| - case "string":
|
| - case "boolean":
|
| - case "number":
|
| - formatter = WebInspector.AuditFormatters.Registry.text;
|
| - args = [value.toString()];
|
| - break;
|
| + /**
|
| + * @param {string} snippetText
|
| + * @return {!Element}
|
| + */
|
| + snippet: function(snippetText) {
|
| + var div = createElement('div');
|
| + div.textContent = snippetText;
|
| + div.className = 'source-code';
|
| + return div;
|
| + },
|
|
|
| - case "object":
|
| - if (value instanceof Node)
|
| - return value;
|
| - if (Array.isArray(value)) {
|
| - formatter = WebInspector.AuditFormatters.Registry.concat;
|
| - args = value;
|
| - } else if (value.type && value.arguments) {
|
| - formatter = WebInspector.AuditFormatters.Registry[value.type];
|
| - args = value.arguments;
|
| - }
|
| - }
|
| - if (!formatter)
|
| - throw "Invalid value or formatter: " + type + JSON.stringify(value);
|
| + /**
|
| + * @return {!Element}
|
| + */
|
| + concat: function() {
|
| + var parent = createElement('span');
|
| + for (var arg = 0; arg < arguments.length; ++arg)
|
| + parent.appendChild(WebInspector.auditFormatters.apply(arguments[arg]));
|
| + return parent;
|
| + },
|
|
|
| - return formatter.apply(null, args);
|
| - },
|
| + /**
|
| + * @param {string} url
|
| + * @param {string=} displayText
|
| + * @return {!Element}
|
| + */
|
| + url: function(url, displayText) {
|
| + return WebInspector.linkifyURLAsNode(url, displayText, undefined, true);
|
| + },
|
|
|
| - /**
|
| - * @param {!Object} formatters
|
| - * @param {?Object} thisArgument
|
| - * @param {string|boolean|number|!Object} value
|
| - * @return {*}
|
| - */
|
| - partiallyApply: function(formatters, thisArgument, value)
|
| - {
|
| - if (Array.isArray(value))
|
| - return value.map(this.partiallyApply.bind(this, formatters, thisArgument));
|
| - if (typeof value === "object" && typeof formatters[value.type] === "function" && value.arguments)
|
| - return formatters[value.type].apply(thisArgument, value.arguments);
|
| - return value;
|
| - }
|
| + /**
|
| + * @param {string} url
|
| + * @param {number=} line
|
| + * @return {!Element}
|
| + */
|
| + resourceLink: function(url, line) {
|
| + // FIXME: use WebInspector.Linkifier
|
| + return WebInspector.linkifyResourceAsNode(url, line, undefined, 'resource-url webkit-html-resource-link');
|
| + }
|
| };
|
|
|
| WebInspector.auditFormatters = new WebInspector.AuditFormatters();
|
|
|