Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Unified Diff: third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js
diff --git a/third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js b/third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js
index eef5ef000a85626e3498d94f680620e7116b96b8..11909cc489650b1f932e6d70b084a83e8295d3f1 100644
--- a/third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js
+++ b/third_party/WebKit/Source/devtools/front_end/sass/SASSProcessor.js
@@ -1,562 +1,543 @@
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
/**
- * @constructor
- * @param {!WebInspector.ASTService} astService
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!Array<!WebInspector.SASSProcessor.EditOperation>} editOperations
+ * @unrestricted
*/
-WebInspector.SASSProcessor = function(astService, map, editOperations)
-{
+WebInspector.SASSProcessor = class {
+ /**
+ * @param {!WebInspector.ASTService} astService
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!Array<!WebInspector.SASSProcessor.EditOperation>} editOperations
+ */
+ constructor(astService, map, editOperations) {
this._astService = astService;
this._map = map;
this._editOperations = editOperations;
-};
-
-WebInspector.SASSProcessor.prototype = {
- /**
- * @return {!Promise<?WebInspector.SourceMap.EditResult>}
- */
- _mutate: function()
- {
- /** @type {!Set<!WebInspector.SASSSupport.Rule>} */
- var changedCSSRules = new Set();
- for (var editOperation of this._editOperations) {
- var rules = editOperation.perform();
- changedCSSRules.addAll(rules);
- }
-
- // Reparse new texts, make sure changes result in anticipated AST trees.
- var promises = [];
- for (var ast of this._map.models().values()) {
- if (!ast.document.hasChanged())
- continue;
- var promise;
- if (ast.document.url === this._map.compiledURL())
- promise = this._astService.parseCSS(ast.document.url, ast.document.newText().value());
- else
- promise = this._astService.parseSCSS(ast.document.url, ast.document.newText().value());
- promises.push(promise);
- }
-
- return Promise.all(promises)
- .then(this._onFinished.bind(this, changedCSSRules));
- },
-
- /**
- * @param {!Set<!WebInspector.SASSSupport.Rule>} changedCSSRules
- * @param {!Array<!WebInspector.SASSSupport.AST>} changedModels
- * @return {?WebInspector.SourceMap.EditResult}
- */
- _onFinished: function(changedCSSRules, changedModels)
- {
- var nodeMapping = new Map();
- var map = this._map.rebase(changedModels, nodeMapping);
- if (!map)
- return null;
-
- var cssEdits = [];
- for (var rule of changedCSSRules) {
- var oldRange = rule.styleRange;
- var newRule = nodeMapping.get(rule);
- var newText = newRule.document.text.extract(newRule.styleRange);
- cssEdits.push(new WebInspector.SourceEdit(newRule.document.url, oldRange, newText));
- }
-
- /** @type {!Map<string, string>} */
- var newSASSSources = new Map();
- for (var model of changedModels) {
- if (model.document.url === map.compiledURL())
- continue;
- newSASSSources.set(model.document.url, model.document.text.value());
- }
- return new WebInspector.SourceMap.EditResult(map, cssEdits, newSASSSources);
- }
-};
-
-/**
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.Property} cssProperty
- * @return {?WebInspector.SASSSupport.Property}
- */
-WebInspector.SASSProcessor._toSASSProperty = function(map, cssProperty)
-{
+ }
+
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.Property} cssProperty
+ * @return {?WebInspector.SASSSupport.Property}
+ */
+ static _toSASSProperty(map, cssProperty) {
var sassName = map.toSourceNode(cssProperty.name);
return sassName ? sassName.parent : null;
-};
-
-/**
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.Property} sassProperty
- * @return {!Array<!WebInspector.SASSSupport.Property>}
- */
-WebInspector.SASSProcessor._toCSSProperties = function(map, sassProperty)
-{
+ }
+
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.Property} sassProperty
+ * @return {!Array<!WebInspector.SASSSupport.Property>}
+ */
+ static _toCSSProperties(map, sassProperty) {
return map.toCompiledNodes(sassProperty.name).map(name => name.parent);
-};
-
-/**
- * @param {!WebInspector.ASTService} astService
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!Array<!WebInspector.TextRange>} ranges
- * @param {!Array<string>} newTexts
- * @return {!Promise<?WebInspector.SourceMap.EditResult>}
- */
-WebInspector.SASSProcessor.processCSSEdits = function(astService, map, ranges, newTexts)
-{
+ }
+
+ /**
+ * @param {!WebInspector.ASTService} astService
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!Array<!WebInspector.TextRange>} ranges
+ * @param {!Array<string>} newTexts
+ * @return {!Promise<?WebInspector.SourceMap.EditResult>}
+ */
+ static processCSSEdits(astService, map, ranges, newTexts) {
console.assert(ranges.length === newTexts.length);
var cssURL = map.compiledURL();
var cssText = map.compiledModel().document.text;
for (var i = 0; i < ranges.length; ++i)
- cssText = new WebInspector.Text(cssText.replaceRange(ranges[i], newTexts[i]));
- return astService.parseCSS(cssURL, cssText.value())
- .then(onCSSParsed);
+ cssText = new WebInspector.Text(cssText.replaceRange(ranges[i], newTexts[i]));
+ return astService.parseCSS(cssURL, cssText.value()).then(onCSSParsed);
/**
* @param {!WebInspector.SASSSupport.AST} newCSSAST
* @return {!Promise<?WebInspector.SourceMap.EditResult>}
*/
- function onCSSParsed(newCSSAST)
- {
- if (newCSSAST.rules.length !== map.compiledModel().rules.length)
- return Promise.resolve(/** @type {?WebInspector.SourceMap.EditResult} */(null));
- // TODO(lushnikov): only diff changed styles.
- var cssDiff = WebInspector.SASSSupport.diffModels(map.compiledModel(), newCSSAST);
- var edits = WebInspector.SASSProcessor._editsFromCSSDiff(cssDiff, map);
-
- // Determine AST trees which will change and clone them.
- var changedURLs = new Set(edits.map(edit => edit.sassURL));
- changedURLs.add(map.compiledURL());
- var clonedModels = [];
- for (var url of changedURLs)
- clonedModels.push(map.modelForURL(url).clone());
-
- // Rebase map and edits onto a cloned AST trees.
- var nodeMapping = new Map();
- var rebasedMap = /** @type {!WebInspector.ASTSourceMap} */(map.rebase(clonedModels, nodeMapping));
- console.assert(rebasedMap);
- var rebasedEdits = edits.map(edit => edit.rebase(rebasedMap, nodeMapping));
-
- return new WebInspector.SASSProcessor(astService, rebasedMap, rebasedEdits)._mutate();
+ function onCSSParsed(newCSSAST) {
+ if (newCSSAST.rules.length !== map.compiledModel().rules.length)
+ return Promise.resolve(/** @type {?WebInspector.SourceMap.EditResult} */ (null));
+ // TODO(lushnikov): only diff changed styles.
+ var cssDiff = WebInspector.SASSSupport.diffModels(map.compiledModel(), newCSSAST);
+ var edits = WebInspector.SASSProcessor._editsFromCSSDiff(cssDiff, map);
+
+ // Determine AST trees which will change and clone them.
+ var changedURLs = new Set(edits.map(edit => edit.sassURL));
+ changedURLs.add(map.compiledURL());
+ var clonedModels = [];
+ for (var url of changedURLs)
+ clonedModels.push(map.modelForURL(url).clone());
+
+ // Rebase map and edits onto a cloned AST trees.
+ var nodeMapping = new Map();
+ var rebasedMap = /** @type {!WebInspector.ASTSourceMap} */ (map.rebase(clonedModels, nodeMapping));
+ console.assert(rebasedMap);
+ var rebasedEdits = edits.map(edit => edit.rebase(rebasedMap, nodeMapping));
+
+ return new WebInspector.SASSProcessor(astService, rebasedMap, rebasedEdits)._mutate();
}
-};
-
-/**
- * @param {!WebInspector.SASSSupport.ASTDiff} cssDiff
- * @param {!WebInspector.ASTSourceMap} map
- * @return {!Array<!WebInspector.SASSProcessor.EditOperation>}
- */
-WebInspector.SASSProcessor._editsFromCSSDiff = function(cssDiff, map)
-{
+ }
+
+ /**
+ * @param {!WebInspector.SASSSupport.ASTDiff} cssDiff
+ * @param {!WebInspector.ASTSourceMap} map
+ * @return {!Array<!WebInspector.SASSProcessor.EditOperation>}
+ */
+ static _editsFromCSSDiff(cssDiff, map) {
var T = WebInspector.SASSSupport.PropertyChangeType;
var operations = [];
for (var i = 0; i < cssDiff.changes.length; ++i) {
- var change = cssDiff.changes[i];
- var operation = null;
- if (change.type === T.ValueChanged || change.type === T.NameChanged)
- operation = WebInspector.SASSProcessor.SetTextOperation.fromCSSChange(change, map);
- else if (change.type === T.PropertyToggled)
- operation = WebInspector.SASSProcessor.TogglePropertyOperation.fromCSSChange(change, map);
- else if (change.type === T.PropertyRemoved)
- operation = WebInspector.SASSProcessor.RemovePropertyOperation.fromCSSChange(change, map);
- else if (change.type === T.PropertyAdded)
- operation = WebInspector.SASSProcessor.InsertPropertiesOperation.fromCSSChange(change, map);
- if (!operation) {
- WebInspector.console.error("Operation ignored: " + change.type);
- continue;
- }
-
- var merged = false;
- for (var j = 0; !merged && j < operations.length; ++j)
- merged = operations[j].merge(operation);
- if (!merged)
- operations.push(operation);
+ var change = cssDiff.changes[i];
+ var operation = null;
+ if (change.type === T.ValueChanged || change.type === T.NameChanged)
+ operation = WebInspector.SASSProcessor.SetTextOperation.fromCSSChange(change, map);
+ else if (change.type === T.PropertyToggled)
+ operation = WebInspector.SASSProcessor.TogglePropertyOperation.fromCSSChange(change, map);
+ else if (change.type === T.PropertyRemoved)
+ operation = WebInspector.SASSProcessor.RemovePropertyOperation.fromCSSChange(change, map);
+ else if (change.type === T.PropertyAdded)
+ operation = WebInspector.SASSProcessor.InsertPropertiesOperation.fromCSSChange(change, map);
+ if (!operation) {
+ WebInspector.console.error('Operation ignored: ' + change.type);
+ continue;
+ }
+
+ var merged = false;
+ for (var j = 0; !merged && j < operations.length; ++j)
+ merged = operations[j].merge(operation);
+ if (!merged)
+ operations.push(operation);
}
return operations;
+ }
+
+ /**
+ * @return {!Promise<?WebInspector.SourceMap.EditResult>}
+ */
+ _mutate() {
+ /** @type {!Set<!WebInspector.SASSSupport.Rule>} */
+ var changedCSSRules = new Set();
+ for (var editOperation of this._editOperations) {
+ var rules = editOperation.perform();
+ changedCSSRules.addAll(rules);
+ }
+
+ // Reparse new texts, make sure changes result in anticipated AST trees.
+ var promises = [];
+ for (var ast of this._map.models().values()) {
+ if (!ast.document.hasChanged())
+ continue;
+ var promise;
+ if (ast.document.url === this._map.compiledURL())
+ promise = this._astService.parseCSS(ast.document.url, ast.document.newText().value());
+ else
+ promise = this._astService.parseSCSS(ast.document.url, ast.document.newText().value());
+ promises.push(promise);
+ }
+
+ return Promise.all(promises).then(this._onFinished.bind(this, changedCSSRules));
+ }
+
+ /**
+ * @param {!Set<!WebInspector.SASSSupport.Rule>} changedCSSRules
+ * @param {!Array<!WebInspector.SASSSupport.AST>} changedModels
+ * @return {?WebInspector.SourceMap.EditResult}
+ */
+ _onFinished(changedCSSRules, changedModels) {
+ var nodeMapping = new Map();
+ var map = this._map.rebase(changedModels, nodeMapping);
+ if (!map)
+ return null;
+
+ var cssEdits = [];
+ for (var rule of changedCSSRules) {
+ var oldRange = rule.styleRange;
+ var newRule = nodeMapping.get(rule);
+ var newText = newRule.document.text.extract(newRule.styleRange);
+ cssEdits.push(new WebInspector.SourceEdit(newRule.document.url, oldRange, newText));
+ }
+
+ /** @type {!Map<string, string>} */
+ var newSASSSources = new Map();
+ for (var model of changedModels) {
+ if (model.document.url === map.compiledURL())
+ continue;
+ newSASSSources.set(model.document.url, model.document.text.value());
+ }
+ return new WebInspector.SourceMap.EditResult(map, cssEdits, newSASSSources);
+ }
};
+
/**
- * @constructor
- * @param {!WebInspector.ASTSourceMap} map
- * @param {string} sassURL
+ * @unrestricted
*/
-WebInspector.SASSProcessor.EditOperation = function(map, sassURL)
-{
+WebInspector.SASSProcessor.EditOperation = class {
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {string} sassURL
+ */
+ constructor(map, sassURL) {
this.map = map;
this.sassURL = sassURL;
-};
-
-WebInspector.SASSProcessor.EditOperation.prototype = {
- /**
- * @param {!WebInspector.SASSProcessor.EditOperation} other
- * @return {boolean}
- */
- merge: function(other)
- {
- return false;
- },
-
- /**
- * @return {!Array<!WebInspector.SASSSupport.Rule>}
- */
- perform: function()
- {
- return [];
- },
-
- /**
- * @param {!WebInspector.ASTSourceMap} newMap
- * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
- * @return {!WebInspector.SASSProcessor.EditOperation}
- */
- rebase: function(newMap, nodeMapping)
- {
- return this;
- },
+ }
+
+ /**
+ * @param {!WebInspector.SASSProcessor.EditOperation} other
+ * @return {boolean}
+ */
+ merge(other) {
+ return false;
+ }
+
+ /**
+ * @return {!Array<!WebInspector.SASSSupport.Rule>}
+ */
+ perform() {
+ return [];
+ }
+
+ /**
+ * @param {!WebInspector.ASTSourceMap} newMap
+ * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
+ * @return {!WebInspector.SASSProcessor.EditOperation}
+ */
+ rebase(newMap, nodeMapping) {
+ return this;
+ }
};
/**
- * @constructor
- * @extends {WebInspector.SASSProcessor.EditOperation}
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.TextNode} sassNode
- * @param {string} newText
+ * @unrestricted
*/
-WebInspector.SASSProcessor.SetTextOperation = function(map, sassNode, newText)
-{
- WebInspector.SASSProcessor.EditOperation.call(this, map, sassNode.document.url);
+WebInspector.SASSProcessor.SetTextOperation = class extends WebInspector.SASSProcessor.EditOperation {
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.TextNode} sassNode
+ * @param {string} newText
+ */
+ constructor(map, sassNode, newText) {
+ super(map, sassNode.document.url);
this._sassNode = sassNode;
this._newText = newText;
-};
-
-/**
- * @param {!WebInspector.SASSSupport.PropertyChange} change
- * @param {!WebInspector.ASTSourceMap} map
- * @return {?WebInspector.SASSProcessor.SetTextOperation}
- */
-WebInspector.SASSProcessor.SetTextOperation.fromCSSChange = function(change, map)
-{
- var oldProperty = /** @type {!WebInspector.SASSSupport.Property} */(change.oldProperty());
- var newProperty = /** @type {!WebInspector.SASSSupport.Property} */(change.newProperty());
- console.assert(oldProperty && newProperty, "SetTextOperation must have both oldProperty and newProperty");
+ }
+
+ /**
+ * @param {!WebInspector.SASSSupport.PropertyChange} change
+ * @param {!WebInspector.ASTSourceMap} map
+ * @return {?WebInspector.SASSProcessor.SetTextOperation}
+ */
+ static fromCSSChange(change, map) {
+ var oldProperty = /** @type {!WebInspector.SASSSupport.Property} */ (change.oldProperty());
+ var newProperty = /** @type {!WebInspector.SASSSupport.Property} */ (change.newProperty());
+ console.assert(oldProperty && newProperty, 'SetTextOperation must have both oldProperty and newProperty');
var newValue = null;
var sassNode = null;
if (change.type === WebInspector.SASSSupport.PropertyChangeType.NameChanged) {
- newValue = newProperty.name.text;
- sassNode = map.toSourceNode(oldProperty.name);
+ newValue = newProperty.name.text;
+ sassNode = map.toSourceNode(oldProperty.name);
} else {
- newValue = newProperty.value.text;
- sassNode = map.toSourceNode(oldProperty.value);
+ newValue = newProperty.value.text;
+ sassNode = map.toSourceNode(oldProperty.value);
}
if (!sassNode)
- return null;
+ return null;
return new WebInspector.SASSProcessor.SetTextOperation(map, sassNode, newValue);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.SASSProcessor.EditOperation} other
+ * @return {boolean}
+ */
+ merge(other) {
+ if (!(other instanceof WebInspector.SASSProcessor.SetTextOperation))
+ return false;
+ return this._sassNode === other._sassNode;
+ }
+
+ /**
+ * @override
+ * @return {!Array<!WebInspector.SASSSupport.Rule>}
+ */
+ perform() {
+ this._sassNode.setText(this._newText);
+ var nodes = this.map.toCompiledNodes(this._sassNode);
+ for (var node of nodes)
+ node.setText(this._newText);
+
+ var cssRules = nodes.map(textNode => textNode.parent.parent);
+ return cssRules;
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.ASTSourceMap} newMap
+ * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
+ * @return {!WebInspector.SASSProcessor.SetTextOperation}
+ */
+ rebase(newMap, nodeMapping) {
+ var sassNode =
+ /** @type {?WebInspector.SASSSupport.TextNode} */ (nodeMapping.get(this._sassNode)) || this._sassNode;
+ return new WebInspector.SASSProcessor.SetTextOperation(newMap, sassNode, this._newText);
+ }
};
-WebInspector.SASSProcessor.SetTextOperation.prototype = {
- /**
- * @override
- * @param {!WebInspector.SASSProcessor.EditOperation} other
- * @return {boolean}
- */
- merge: function(other)
- {
- if (!(other instanceof WebInspector.SASSProcessor.SetTextOperation))
- return false;
- return this._sassNode === other._sassNode;
- },
-
- /**
- * @override
- * @return {!Array<!WebInspector.SASSSupport.Rule>}
- */
- perform: function()
- {
- this._sassNode.setText(this._newText);
- var nodes = this.map.toCompiledNodes(this._sassNode);
- for (var node of nodes)
- node.setText(this._newText);
-
- var cssRules = nodes.map(textNode => textNode.parent.parent);
- return cssRules;
- },
-
- /**
- * @override
- * @param {!WebInspector.ASTSourceMap} newMap
- * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
- * @return {!WebInspector.SASSProcessor.SetTextOperation}
- */
- rebase: function(newMap, nodeMapping)
- {
- var sassNode = /** @type {?WebInspector.SASSSupport.TextNode} */(nodeMapping.get(this._sassNode)) || this._sassNode;
- return new WebInspector.SASSProcessor.SetTextOperation(newMap, sassNode, this._newText);
- },
-
- __proto__: WebInspector.SASSProcessor.EditOperation.prototype
-};
/**
- * @constructor
- * @extends {WebInspector.SASSProcessor.EditOperation}
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.Property} sassProperty
- * @param {boolean} newDisabled
+ * @unrestricted
*/
-WebInspector.SASSProcessor.TogglePropertyOperation = function(map, sassProperty, newDisabled)
-{
- WebInspector.SASSProcessor.EditOperation.call(this, map, sassProperty.document.url);
+WebInspector.SASSProcessor.TogglePropertyOperation = class extends WebInspector.SASSProcessor.EditOperation {
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.Property} sassProperty
+ * @param {boolean} newDisabled
+ */
+ constructor(map, sassProperty, newDisabled) {
+ super(map, sassProperty.document.url);
this._sassProperty = sassProperty;
this._newDisabled = newDisabled;
-};
-
-/**
- * @param {!WebInspector.SASSSupport.PropertyChange} change
- * @param {!WebInspector.ASTSourceMap} map
- * @return {?WebInspector.SASSProcessor.TogglePropertyOperation}
- */
-WebInspector.SASSProcessor.TogglePropertyOperation.fromCSSChange = function(change, map)
-{
- var oldCSSProperty = /** @type {!WebInspector.SASSSupport.Property} */(change.oldProperty());
- console.assert(oldCSSProperty, "TogglePropertyOperation must have old CSS property");
+ }
+
+ /**
+ * @param {!WebInspector.SASSSupport.PropertyChange} change
+ * @param {!WebInspector.ASTSourceMap} map
+ * @return {?WebInspector.SASSProcessor.TogglePropertyOperation}
+ */
+ static fromCSSChange(change, map) {
+ var oldCSSProperty = /** @type {!WebInspector.SASSSupport.Property} */ (change.oldProperty());
+ console.assert(oldCSSProperty, 'TogglePropertyOperation must have old CSS property');
var sassProperty = WebInspector.SASSProcessor._toSASSProperty(map, oldCSSProperty);
if (!sassProperty)
- return null;
+ return null;
var newDisabled = change.newProperty().disabled;
return new WebInspector.SASSProcessor.TogglePropertyOperation(map, sassProperty, newDisabled);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.SASSProcessor.EditOperation} other
+ * @return {boolean}
+ */
+ merge(other) {
+ if (!(other instanceof WebInspector.SASSProcessor.TogglePropertyOperation))
+ return false;
+ return this._sassProperty === other._sassProperty;
+ }
+
+ /**
+ * @override
+ * @return {!Array<!WebInspector.SASSSupport.Rule>}
+ */
+ perform() {
+ this._sassProperty.setDisabled(this._newDisabled);
+ var cssProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._sassProperty);
+ for (var property of cssProperties)
+ property.setDisabled(this._newDisabled);
+
+ var cssRules = cssProperties.map(property => property.parent);
+ return cssRules;
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.ASTSourceMap} newMap
+ * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
+ * @return {!WebInspector.SASSProcessor.TogglePropertyOperation}
+ */
+ rebase(newMap, nodeMapping) {
+ var sassProperty =
+ /** @type {?WebInspector.SASSSupport.Property} */ (nodeMapping.get(this._sassProperty)) || this._sassProperty;
+ return new WebInspector.SASSProcessor.TogglePropertyOperation(newMap, sassProperty, this._newDisabled);
+ }
};
-WebInspector.SASSProcessor.TogglePropertyOperation.prototype = {
- /**
- * @override
- * @param {!WebInspector.SASSProcessor.EditOperation} other
- * @return {boolean}
- */
- merge: function(other)
- {
- if (!(other instanceof WebInspector.SASSProcessor.TogglePropertyOperation))
- return false;
- return this._sassProperty === other._sassProperty;
- },
-
- /**
- * @override
- * @return {!Array<!WebInspector.SASSSupport.Rule>}
- */
- perform: function()
- {
- this._sassProperty.setDisabled(this._newDisabled);
- var cssProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._sassProperty);
- for (var property of cssProperties)
- property.setDisabled(this._newDisabled);
-
- var cssRules = cssProperties.map(property => property.parent);
- return cssRules;
- },
-
- /**
- * @override
- * @param {!WebInspector.ASTSourceMap} newMap
- * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
- * @return {!WebInspector.SASSProcessor.TogglePropertyOperation}
- */
- rebase: function(newMap, nodeMapping)
- {
- var sassProperty = /** @type {?WebInspector.SASSSupport.Property} */(nodeMapping.get(this._sassProperty)) || this._sassProperty;
- return new WebInspector.SASSProcessor.TogglePropertyOperation(newMap, sassProperty, this._newDisabled);
- },
-
- __proto__: WebInspector.SASSProcessor.EditOperation.prototype
-};
/**
- * @constructor
- * @extends {WebInspector.SASSProcessor.EditOperation}
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.Property} sassProperty
+ * @unrestricted
*/
-WebInspector.SASSProcessor.RemovePropertyOperation = function(map, sassProperty)
-{
- WebInspector.SASSProcessor.EditOperation.call(this, map, sassProperty.document.url);
+WebInspector.SASSProcessor.RemovePropertyOperation = class extends WebInspector.SASSProcessor.EditOperation {
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.Property} sassProperty
+ */
+ constructor(map, sassProperty) {
+ super(map, sassProperty.document.url);
this._sassProperty = sassProperty;
-};
-
-/**
- * @param {!WebInspector.SASSSupport.PropertyChange} change
- * @param {!WebInspector.ASTSourceMap} map
- * @return {?WebInspector.SASSProcessor.RemovePropertyOperation}
- */
-WebInspector.SASSProcessor.RemovePropertyOperation.fromCSSChange = function(change, map)
-{
- var removedProperty = /** @type {!WebInspector.SASSSupport.Property} */(change.oldProperty());
- console.assert(removedProperty, "RemovePropertyOperation must have removed CSS property");
+ }
+
+ /**
+ * @param {!WebInspector.SASSSupport.PropertyChange} change
+ * @param {!WebInspector.ASTSourceMap} map
+ * @return {?WebInspector.SASSProcessor.RemovePropertyOperation}
+ */
+ static fromCSSChange(change, map) {
+ var removedProperty = /** @type {!WebInspector.SASSSupport.Property} */ (change.oldProperty());
+ console.assert(removedProperty, 'RemovePropertyOperation must have removed CSS property');
var sassProperty = WebInspector.SASSProcessor._toSASSProperty(map, removedProperty);
if (!sassProperty)
- return null;
+ return null;
return new WebInspector.SASSProcessor.RemovePropertyOperation(map, sassProperty);
-};
-
-WebInspector.SASSProcessor.RemovePropertyOperation.prototype = {
- /**
- * @override
- * @param {!WebInspector.SASSProcessor.EditOperation} other
- * @return {boolean}
- */
- merge: function(other)
- {
- if (!(other instanceof WebInspector.SASSProcessor.RemovePropertyOperation))
- return false;
- return this._sassProperty === other._sassProperty;
- },
-
- /**
- * @override
- * @return {!Array<!WebInspector.SASSSupport.Rule>}
- */
- perform: function()
- {
- var cssProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._sassProperty);
- var cssRules = cssProperties.map(property => property.parent);
- this._sassProperty.remove();
- for (var cssProperty of cssProperties) {
- cssProperty.remove();
- this.map.removeMapping(cssProperty.name, this._sassProperty.name);
- this.map.removeMapping(cssProperty.value, this._sassProperty.value);
- }
-
- return cssRules;
- },
-
- /**
- * @override
- * @param {!WebInspector.ASTSourceMap} newMap
- * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
- * @return {!WebInspector.SASSProcessor.RemovePropertyOperation}
- */
- rebase: function(newMap, nodeMapping)
- {
- var sassProperty = /** @type {?WebInspector.SASSSupport.Property} */(nodeMapping.get(this._sassProperty)) || this._sassProperty;
- return new WebInspector.SASSProcessor.RemovePropertyOperation(newMap, sassProperty);
- },
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.SASSProcessor.EditOperation} other
+ * @return {boolean}
+ */
+ merge(other) {
+ if (!(other instanceof WebInspector.SASSProcessor.RemovePropertyOperation))
+ return false;
+ return this._sassProperty === other._sassProperty;
+ }
+
+ /**
+ * @override
+ * @return {!Array<!WebInspector.SASSSupport.Rule>}
+ */
+ perform() {
+ var cssProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._sassProperty);
+ var cssRules = cssProperties.map(property => property.parent);
+ this._sassProperty.remove();
+ for (var cssProperty of cssProperties) {
+ cssProperty.remove();
+ this.map.removeMapping(cssProperty.name, this._sassProperty.name);
+ this.map.removeMapping(cssProperty.value, this._sassProperty.value);
+ }
- __proto__: WebInspector.SASSProcessor.EditOperation.prototype
+ return cssRules;
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.ASTSourceMap} newMap
+ * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
+ * @return {!WebInspector.SASSProcessor.RemovePropertyOperation}
+ */
+ rebase(newMap, nodeMapping) {
+ var sassProperty =
+ /** @type {?WebInspector.SASSSupport.Property} */ (nodeMapping.get(this._sassProperty)) || this._sassProperty;
+ return new WebInspector.SASSProcessor.RemovePropertyOperation(newMap, sassProperty);
+ }
};
+
/**
- * @constructor
- * @extends {WebInspector.SASSProcessor.EditOperation}
- * @param {!WebInspector.ASTSourceMap} map
- * @param {!WebInspector.SASSSupport.Rule} sassRule
- * @param {?WebInspector.SASSSupport.Property} afterSASSProperty
- * @param {!Array<string>} propertyNames
- * @param {!Array<string>} propertyValues
- * @param {!Array<boolean>} disabledStates
+ * @unrestricted
*/
-WebInspector.SASSProcessor.InsertPropertiesOperation = function(map, sassRule, afterSASSProperty, propertyNames, propertyValues, disabledStates)
-{
+WebInspector.SASSProcessor.InsertPropertiesOperation = class extends WebInspector.SASSProcessor.EditOperation {
+ /**
+ * @param {!WebInspector.ASTSourceMap} map
+ * @param {!WebInspector.SASSSupport.Rule} sassRule
+ * @param {?WebInspector.SASSSupport.Property} afterSASSProperty
+ * @param {!Array<string>} propertyNames
+ * @param {!Array<string>} propertyValues
+ * @param {!Array<boolean>} disabledStates
+ */
+ constructor(map, sassRule, afterSASSProperty, propertyNames, propertyValues, disabledStates) {
console.assert(propertyNames.length === propertyValues.length && propertyValues.length === disabledStates.length);
- WebInspector.SASSProcessor.EditOperation.call(this, map, sassRule.document.url);
+ super(map, sassRule.document.url);
this._sassRule = sassRule;
this._afterSASSProperty = afterSASSProperty;
this._nameTexts = propertyNames;
this._valueTexts = propertyValues;
this._disabledStates = disabledStates;
-};
-
-/**
- * @param {!WebInspector.SASSSupport.PropertyChange} change
- * @param {!WebInspector.ASTSourceMap} map
- * @return {?WebInspector.SASSProcessor.InsertPropertiesOperation}
- */
-WebInspector.SASSProcessor.InsertPropertiesOperation.fromCSSChange = function(change, map)
-{
+ }
+
+ /**
+ * @param {!WebInspector.SASSSupport.PropertyChange} change
+ * @param {!WebInspector.ASTSourceMap} map
+ * @return {?WebInspector.SASSProcessor.InsertPropertiesOperation}
+ */
+ static fromCSSChange(change, map) {
var sassRule = null;
var afterSASSProperty = null;
if (change.oldPropertyIndex) {
- var cssAnchor = change.oldRule.properties[change.oldPropertyIndex - 1].name;
- var sassAnchor = map.toSourceNode(cssAnchor);
- afterSASSProperty = sassAnchor ? sassAnchor.parent : null;
- sassRule = afterSASSProperty ? afterSASSProperty.parent : null;
+ var cssAnchor = change.oldRule.properties[change.oldPropertyIndex - 1].name;
+ var sassAnchor = map.toSourceNode(cssAnchor);
+ afterSASSProperty = sassAnchor ? sassAnchor.parent : null;
+ sassRule = afterSASSProperty ? afterSASSProperty.parent : null;
} else {
- var cssAnchor = change.oldRule.blockStart;
- var sassAnchor = map.toSourceNode(cssAnchor);
- sassRule = sassAnchor ? sassAnchor.parent : null;
+ var cssAnchor = change.oldRule.blockStart;
+ var sassAnchor = map.toSourceNode(cssAnchor);
+ sassRule = sassAnchor ? sassAnchor.parent : null;
}
if (!sassRule)
- return null;
- var insertedProperty = /** @type {!WebInspector.SASSSupport.Property} */(change.newProperty());
- console.assert(insertedProperty, "InsertPropertiesOperation must have inserted CSS property");
+ return null;
+ var insertedProperty = /** @type {!WebInspector.SASSSupport.Property} */ (change.newProperty());
+ console.assert(insertedProperty, 'InsertPropertiesOperation must have inserted CSS property');
var names = [insertedProperty.name.text];
var values = [insertedProperty.value.text];
var disabledStates = [insertedProperty.disabled];
- return new WebInspector.SASSProcessor.InsertPropertiesOperation(map, sassRule, afterSASSProperty, names, values, disabledStates);
+ return new WebInspector.SASSProcessor.InsertPropertiesOperation(
+ map, sassRule, afterSASSProperty, names, values, disabledStates);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.SASSProcessor.EditOperation} other
+ * @return {boolean}
+ */
+ merge(other) {
+ if (!(other instanceof WebInspector.SASSProcessor.InsertPropertiesOperation))
+ return false;
+ if (this._sassRule !== other._sassRule || this._afterSASSProperty !== other._afterSASSProperty)
+ return false;
+ var names = new Set(this._nameTexts);
+ for (var i = 0; i < other._nameTexts.length; ++i) {
+ var nameText = other._nameTexts[i];
+ if (names.has(nameText))
+ continue;
+ this._nameTexts.push(nameText);
+ this._valueTexts.push(other._valueTexts[i]);
+ this._disabledStates.push(other._disabledStates[i]);
+ }
+ return true;
+ }
+
+ /**
+ * @override
+ * @return {!Array<!WebInspector.SASSSupport.Rule>}
+ */
+ perform() {
+ var newSASSProperties = this._sassRule.insertProperties(
+ this._afterSASSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
+ var cssRules = [];
+ var afterCSSProperties = [];
+ if (this._afterSASSProperty) {
+ afterCSSProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._afterSASSProperty);
+ cssRules = afterCSSProperties.map(property => property.parent);
+ } else {
+ cssRules = this.map.toCompiledNodes(this._sassRule.blockStart).map(blockStart => blockStart.parent);
+ }
+ for (var i = 0; i < cssRules.length; ++i) {
+ var cssRule = cssRules[i];
+ var afterCSSProperty = afterCSSProperties.length ? afterCSSProperties[i] : null;
+ var newCSSProperties =
+ cssRule.insertProperties(afterCSSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
+ for (var j = 0; j < newCSSProperties.length; ++j) {
+ this.map.addMapping(newCSSProperties[j].name, newSASSProperties[j].name);
+ this.map.addMapping(newCSSProperties[j].value, newSASSProperties[j].value);
+ }
+ }
+ return cssRules;
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.ASTSourceMap} newMap
+ * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
+ * @return {!WebInspector.SASSProcessor.InsertPropertiesOperation}
+ */
+ rebase(newMap, nodeMapping) {
+ var sassRule = /** @type {?WebInspector.SASSSupport.Rule} */ (nodeMapping.get(this._sassRule)) || this._sassRule;
+ var afterSASSProperty = this._afterSASSProperty ?
+ /** @type {?WebInspector.SASSSupport.Property} */ (nodeMapping.get(this._afterSASSProperty)) ||
+ this._afterSASSProperty :
+ null;
+ return new WebInspector.SASSProcessor.InsertPropertiesOperation(
+ newMap, sassRule, afterSASSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
+ }
};
-WebInspector.SASSProcessor.InsertPropertiesOperation.prototype = {
- /**
- * @override
- * @param {!WebInspector.SASSProcessor.EditOperation} other
- * @return {boolean}
- */
- merge: function(other)
- {
- if (!(other instanceof WebInspector.SASSProcessor.InsertPropertiesOperation))
- return false;
- if (this._sassRule !== other._sassRule || this._afterSASSProperty !== other._afterSASSProperty)
- return false;
- var names = new Set(this._nameTexts);
- for (var i = 0; i < other._nameTexts.length; ++i) {
- var nameText = other._nameTexts[i];
- if (names.has(nameText))
- continue;
- this._nameTexts.push(nameText);
- this._valueTexts.push(other._valueTexts[i]);
- this._disabledStates.push(other._disabledStates[i]);
- }
- return true;
- },
- /**
- * @override
- * @return {!Array<!WebInspector.SASSSupport.Rule>}
- */
- perform: function()
- {
- var newSASSProperties = this._sassRule.insertProperties(this._afterSASSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
- var cssRules = [];
- var afterCSSProperties = [];
- if (this._afterSASSProperty) {
- afterCSSProperties = WebInspector.SASSProcessor._toCSSProperties(this.map, this._afterSASSProperty);
- cssRules = afterCSSProperties.map(property => property.parent);
- } else {
- cssRules = this.map.toCompiledNodes(this._sassRule.blockStart).map(blockStart => blockStart.parent);
- }
- for (var i = 0; i < cssRules.length; ++i) {
- var cssRule = cssRules[i];
- var afterCSSProperty = afterCSSProperties.length ? afterCSSProperties[i] : null;
- var newCSSProperties = cssRule.insertProperties(afterCSSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
- for (var j = 0; j < newCSSProperties.length; ++j) {
- this.map.addMapping(newCSSProperties[j].name, newSASSProperties[j].name);
- this.map.addMapping(newCSSProperties[j].value, newSASSProperties[j].value);
- }
- }
- return cssRules;
- },
-
- /**
- * @override
- * @param {!WebInspector.ASTSourceMap} newMap
- * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node>} nodeMapping
- * @return {!WebInspector.SASSProcessor.InsertPropertiesOperation}
- */
- rebase: function(newMap, nodeMapping)
- {
- var sassRule = /** @type {?WebInspector.SASSSupport.Rule} */(nodeMapping.get(this._sassRule)) || this._sassRule;
- var afterSASSProperty = this._afterSASSProperty ? /** @type {?WebInspector.SASSSupport.Property} */(nodeMapping.get(this._afterSASSProperty)) || this._afterSASSProperty : null;
- return new WebInspector.SASSProcessor.InsertPropertiesOperation(newMap, sassRule, afterSASSProperty, this._nameTexts, this._valueTexts, this._disabledStates);
- },
-
- __proto__: WebInspector.SASSProcessor.EditOperation.prototype
-};

Powered by Google App Engine
This is Rietveld 408576698