Bug 1302787 - implement css-color-4 color function changes in devtool parser. r=ttromey

MozReview-Commit-ID: JQQJcDsXFlp
This commit is contained in:
JerryShih
2016-10-17 02:12:05 -04:00
parent 685245288b
commit 7177bc6fd5
4 changed files with 270 additions and 69 deletions

View File

@@ -14,6 +14,8 @@
"use strict";
const {CSS_ANGLEUNIT} = require("devtools/shared/css/properties-db");
const promise = require("promise");
const {getCSSLexer} = require("devtools/shared/css/lexer");
const {Task} = require("devtools/shared/task");
@@ -1133,6 +1135,28 @@ function parseSingleValue(isCssPropertyKnown, value) {
};
}
/**
* Convert an angle value to degree.
*
* @param {Number} angleValue The angle value.
* @param {CSS_ANGLEUNIT} angleUnit The angleValue's angle unit.
* @return {Number} An angle value in degree.
*/
function getAngleValueInDegrees(angleValue, angleUnit) {
switch (angleUnit) {
case CSS_ANGLEUNIT.deg:
return angleValue;
case CSS_ANGLEUNIT.grad:
return angleValue * 0.9;
case CSS_ANGLEUNIT.rad:
return angleValue * 180 / Math.PI;
case CSS_ANGLEUNIT.turn:
return angleValue * 360;
default:
throw new Error("No matched angle unit.");
}
}
exports.cssTokenizer = cssTokenizer;
exports.cssTokenizerWithLineColumn = cssTokenizerWithLineColumn;
exports.escapeCSSComment = escapeCSSComment;
@@ -1144,3 +1168,4 @@ exports._parseCommentDeclarations = parseCommentDeclarations;
exports.RuleRewriter = RuleRewriter;
exports.parsePseudoClassesAndAttributes = parsePseudoClassesAndAttributes;
exports.parseSingleValue = parseSingleValue;
exports.getAngleValueInDegrees = getAngleValueInDegrees;