diff options
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/js1_5/Expressions/shell.js')
-rw-r--r-- | Source/JavaScriptCore/tests/mozilla/js1_5/Expressions/shell.js | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/js1_5/Expressions/shell.js b/Source/JavaScriptCore/tests/mozilla/js1_5/Expressions/shell.js new file mode 100644 index 0000000..83cf771 --- /dev/null +++ b/Source/JavaScriptCore/tests/mozilla/js1_5/Expressions/shell.js @@ -0,0 +1,113 @@ +/* +* The contents of this file are subject to the Netscape Public +* License Version 1.1 (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.mozilla.org/NPL/ +* +* Software distributed under the License is distributed on an "AS IS" +* basis, WITHOUT WARRANTY OF ANY KIND, either expressed +* or implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is mozilla.org code. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 1998 Netscape Communications Corporation. +* All Rights Reserved. +* +* Contributor(s): pschwartau@netscape.com +* Date: 07 February 2001 +* +* Functionality common to Array testing - +*/ +//------------------------------------------------------------------------------------------------- +var CHAR_LBRACKET = '['; +var CHAR_RBRACKET = ']'; +var CHAR_QT_DBL = '"'; +var CHAR_QT = "'"; +var CHAR_NL = '\n'; +var CHAR_COMMA = ','; +var CHAR_SPACE = ' '; +var TYPE_STRING = typeof 'abc'; + + +/* + * If available, arr.toSource() gives more detail than arr.toString() + * + * var arr = Array(1,2,'3'); + * + * arr.toSource() + * [1, 2, "3"] + * + * arr.toString() + * 1,2,3 + * + * But toSource() doesn't exist in Rhino, so use our own imitation, below - + * + */ +function formatArray(arr) +{ + try + { + return arr.toSource(); + } + catch(e) + { + return toSource(arr); + } +} + + + +/* + * Imitate SpiderMonkey's arr.toSource() method: + * + * a) Double-quote each array element that is of string type + * b) Represent |undefined| and |null| by empty strings + * c) Delimit elements by a comma + single space + * d) Do not add delimiter at the end UNLESS the last element is |undefined| + * e) Add square brackets to the beginning and end of the string + */ +function toSource(arr) +{ + var delim = CHAR_COMMA + CHAR_SPACE; + var elt = ''; + var ret = ''; + var len = arr.length; + + for (i=0; i<len; i++) + { + elt = arr[i]; + + switch(true) + { + case (typeof elt === TYPE_STRING) : + ret += doubleQuote(elt); + break; + + case (elt === undefined || elt === null) : + break; // add nothing but the delimiter, below - + + default: + ret += elt.toString(); + } + + if ((i < len-1) || (elt === undefined)) + ret += delim; + } + + return CHAR_LBRACKET + ret + CHAR_RBRACKET; +} + + +function doubleQuote(text) +{ + return CHAR_QT_DBL + text + CHAR_QT_DBL; +} + + +function singleQuote(text) +{ + return CHAR_QT + text + CHAR_QT; +} |