diff options
Diffstat (limited to '')
-rw-r--r-- | dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js b/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js new file mode 100644 index 0000000000..fc84a72327 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deString.js @@ -0,0 +1,111 @@ +/*------------------------------------------------------------------------- + * drawElements Quality Program OpenGL ES Utilities + * ------------------------------------------------ + * + * Copyright 2014 The Android Open Source Project + * + * 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. + * + */ + +/** + * This class allows one to create a random integer, floating point number or boolean (TODO, choose random items from a list and shuffle an array) + */ +'use strict'; +goog.provide('framework.delibs.debase.deString'); +goog.require('framework.delibs.debase.deMath'); + +goog.scope(function() { + +var deString = framework.delibs.debase.deString; +var deMath = framework.delibs.debase.deMath; + + var DE_ASSERT = function(x) { + if (!x) + throw new Error('Assert failed'); + }; + + /** + * Compute hash from string. + * @param {?string} str String to compute hash value for. + * @return {number} Computed hash value. + */ + deString.deStringHash = function(str) { + /* \note [pyry] This hash is used in DT_GNU_HASH and is proven + to be robust for symbol hashing. */ + /* \see http://sources.redhat.com/ml/binutils/2006-06/msg00418.html */ + /** @type {number} */ var hash = 5381; + /** @type {number} */ var c; + + DE_ASSERT(str != undefined); + if (str !== null) { + var i = 0; + while (i < str.length) { //(c = (unsigned int)*str++) != 0) + c = str.charCodeAt(i); //trunc to 8-bit + hash = (hash << 5) + hash + c; + i++; + } + } + return hash; + }; + + /** + * Checks if a JS string is either empty or undefined + * @param {string} str + * @return {boolean} + */ + deString.deIsStringEmpty = function(str) { + if (str === undefined || str.length == 0) + return true; + return false; + }; + + /** + * @private + * @param {Object} enumType + * @param {?} value + * @return {string} + */ + deString.getString = function(enumType, value) { + for (var p in enumType) + if (enumType[p] == value) + return p; + + if (typeof value === 'undefined') + return 'undefined'; + + if (!value) + return 'null'; + + return value.toString(10); + }; + + /** + * @param {Object} enumType + * @param {?} value + * @return {string} + */ + deString.enumToString = function(enumType, value) { + if (typeof deString.enumToString[enumType] === 'undefined') + deString.enumToString[enumType] = {}; + + var table = deString.enumToString[enumType]; + if (typeof table[value] === 'undefined') { + var v = deString.getString(enumType, value); + table[value] = v; + } + + return table[value]; + }; + +}); |