Add packages to optimize svgs dynamically
These packages will be used to dynamically optimize SVG images
during the build.
R=jacktfranklin@chromium.org
Bug: 1216402
Change-Id: I04e95aa7d79c9d67beaf8a7861182c52b16b7d0f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2939992
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
diff --git a/node_modules/css-tree/lib/definition-syntax/tokenizer.js b/node_modules/css-tree/lib/definition-syntax/tokenizer.js
new file mode 100644
index 0000000..81ee681
--- /dev/null
+++ b/node_modules/css-tree/lib/definition-syntax/tokenizer.js
@@ -0,0 +1,55 @@
+var SyntaxError = require('./SyntaxError');
+
+var TAB = 9;
+var N = 10;
+var F = 12;
+var R = 13;
+var SPACE = 32;
+
+var Tokenizer = function(str) {
+ this.str = str;
+ this.pos = 0;
+};
+
+Tokenizer.prototype = {
+ charCodeAt: function(pos) {
+ return pos < this.str.length ? this.str.charCodeAt(pos) : 0;
+ },
+ charCode: function() {
+ return this.charCodeAt(this.pos);
+ },
+ nextCharCode: function() {
+ return this.charCodeAt(this.pos + 1);
+ },
+ nextNonWsCode: function(pos) {
+ return this.charCodeAt(this.findWsEnd(pos));
+ },
+ findWsEnd: function(pos) {
+ for (; pos < this.str.length; pos++) {
+ var code = this.str.charCodeAt(pos);
+ if (code !== R && code !== N && code !== F && code !== SPACE && code !== TAB) {
+ break;
+ }
+ }
+
+ return pos;
+ },
+ substringToPos: function(end) {
+ return this.str.substring(this.pos, this.pos = end);
+ },
+ eat: function(code) {
+ if (this.charCode() !== code) {
+ this.error('Expect `' + String.fromCharCode(code) + '`');
+ }
+
+ this.pos++;
+ },
+ peek: function() {
+ return this.pos < this.str.length ? this.str.charAt(this.pos++) : '';
+ },
+ error: function(message) {
+ throw new SyntaxError(message, this.str, this.pos);
+ }
+};
+
+module.exports = Tokenizer;