| Index: third_party/web-animations-js/sources/src/handler-utils.js
|
| diff --git a/third_party/web-animations-js/sources/src/handler-utils.js b/third_party/web-animations-js/sources/src/handler-utils.js
|
| deleted file mode 100644
|
| index d9f05e17e99a4a7747cd8d86d71822518dd4959a..0000000000000000000000000000000000000000
|
| --- a/third_party/web-animations-js/sources/src/handler-utils.js
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -// Copyright 2014 Google Inc. All rights reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -(function(scope) {
|
| -
|
| - // consume* functions return a 2 value array of [parsed-data, '' or not-yet consumed input]
|
| -
|
| - // Regex should be anchored with /^
|
| - function consumeToken(regex, string) {
|
| - var result = regex.exec(string);
|
| - if (result) {
|
| - result = regex.ignoreCase ? result[0].toLowerCase() : result[0];
|
| - return [result, string.substr(result.length)];
|
| - }
|
| - }
|
| -
|
| - function consumeTrimmed(consumer, string) {
|
| - string = string.replace(/^\s*/, '');
|
| - var result = consumer(string);
|
| - if (result) {
|
| - return [result[0], result[1].replace(/^\s*/, '')];
|
| - }
|
| - }
|
| -
|
| - function consumeRepeated(consumer, separator, string) {
|
| - consumer = consumeTrimmed.bind(null, consumer);
|
| - var list = [];
|
| - while (true) {
|
| - var result = consumer(string);
|
| - if (!result) {
|
| - return [list, string];
|
| - }
|
| - list.push(result[0]);
|
| - string = result[1];
|
| - result = consumeToken(separator, string);
|
| - if (!result || result[1] == '') {
|
| - return [list, string];
|
| - }
|
| - string = result[1];
|
| - }
|
| - }
|
| -
|
| - // Consumes a token or expression with balanced parentheses
|
| - function consumeParenthesised(parser, string) {
|
| - var nesting = 0;
|
| - for (var n = 0; n < string.length; n++) {
|
| - if (/\s|,/.test(string[n]) && nesting == 0) {
|
| - break;
|
| - } else if (string[n] == '(') {
|
| - nesting++;
|
| - } else if (string[n] == ')') {
|
| - nesting--;
|
| - if (nesting == 0)
|
| - n++;
|
| - if (nesting <= 0)
|
| - break;
|
| - }
|
| - }
|
| - var parsed = parser(string.substr(0, n));
|
| - return parsed == undefined ? undefined : [parsed, string.substr(n)];
|
| - }
|
| -
|
| - function lcm(a, b) {
|
| - var c = a;
|
| - var d = b;
|
| - while (c && d)
|
| - c > d ? c %= d : d %= c;
|
| - c = (a * b) / (c + d);
|
| - return c;
|
| - }
|
| -
|
| - function ignore(value) {
|
| - return function(input) {
|
| - var result = value(input);
|
| - if (result)
|
| - result[0] = undefined;
|
| - return result;
|
| - }
|
| - }
|
| -
|
| - function optional(value, defaultValue) {
|
| - return function(input) {
|
| - var result = value(input);
|
| - if (result)
|
| - return result;
|
| - return [defaultValue, input];
|
| - }
|
| - }
|
| -
|
| - function consumeList(list, input) {
|
| - var output = [];
|
| - for (var i = 0; i < list.length; i++) {
|
| - var result = scope.consumeTrimmed(list[i], input);
|
| - if (!result || result[0] == '')
|
| - return;
|
| - if (result[0] !== undefined)
|
| - output.push(result[0]);
|
| - input = result[1];
|
| - }
|
| - if (input == '') {
|
| - return output;
|
| - }
|
| - }
|
| -
|
| - function mergeWrappedNestedRepeated(wrap, nestedMerge, separator, left, right) {
|
| - var matchingLeft = [];
|
| - var matchingRight = [];
|
| - var reconsititution = [];
|
| - var length = lcm(left.length, right.length);
|
| - for (var i = 0; i < length; i++) {
|
| - var thing = nestedMerge(left[i % left.length], right[i % right.length]);
|
| - if (!thing) {
|
| - return;
|
| - }
|
| - matchingLeft.push(thing[0]);
|
| - matchingRight.push(thing[1]);
|
| - reconsititution.push(thing[2]);
|
| - }
|
| - return [matchingLeft, matchingRight, function(positions) {
|
| - var result = positions.map(function(position, i) {
|
| - return reconsititution[i](position);
|
| - }).join(separator);
|
| - return wrap ? wrap(result) : result;
|
| - }];
|
| - }
|
| -
|
| - function mergeList(left, right, list) {
|
| - var lefts = [];
|
| - var rights = [];
|
| - var functions = [];
|
| - var j = 0;
|
| - for (var i = 0; i < list.length; i++) {
|
| - if (typeof list[i] == 'function') {
|
| - var result = list[i](left[j], right[j++]);
|
| - lefts.push(result[0]);
|
| - rights.push(result[1]);
|
| - functions.push(result[2]);
|
| - } else {
|
| - (function(pos) {
|
| - lefts.push(false);
|
| - rights.push(false);
|
| - functions.push(function() { return list[pos]; });
|
| - })(i);
|
| - }
|
| - }
|
| - return [lefts, rights, function(results) {
|
| - var result = '';
|
| - for (var i = 0; i < results.length; i++) {
|
| - result += functions[i](results[i]);
|
| - }
|
| - return result;
|
| - }];
|
| - }
|
| -
|
| - scope.consumeToken = consumeToken;
|
| - scope.consumeTrimmed = consumeTrimmed;
|
| - scope.consumeRepeated = consumeRepeated;
|
| - scope.consumeParenthesised = consumeParenthesised;
|
| - scope.ignore = ignore;
|
| - scope.optional = optional;
|
| - scope.consumeList = consumeList;
|
| - scope.mergeNestedRepeated = mergeWrappedNestedRepeated.bind(null, null);
|
| - scope.mergeWrappedNestedRepeated = mergeWrappedNestedRepeated;
|
| - scope.mergeList = mergeList;
|
| -
|
| -})(webAnimations1);
|
|
|