18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The contents of this file are subject to the Netscape Public
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* License Version 1.1 (the "License"); you may not use this file
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* except in compliance with the License. You may obtain a copy of
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* the License at http://www.mozilla.org/NPL/
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Software distributed under the License is distributed on an "AS
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* implied. See the License for the specific language governing
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* rights and limitations under the License.
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Original Code is mozilla.org code.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* The Initial Developer of the Original Code is Netscape
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Communications Corporation.  Portions created by Netscape are
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Copyright (C) 1998 Netscape Communications Corporation.
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* All Rights Reserved.
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Contributor(s): pschwartau@netscape.com
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Date: 28 August 2001
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* SUMMARY: A [DontEnum] prop, if overridden, should appear in uneval().
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* See http://bugzilla.mozilla.org/show_bug.cgi?id=90596
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* NOTE: some inefficiencies in the test are made for the sake of readability.
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Sorting properties alphabetically is done for definiteness in comparisons.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//-----------------------------------------------------------------------------
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar UBound = 0;
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar bug = 90596;
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar summary = 'A [DontEnum] prop, if overridden, should appear in uneval()';
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar cnCOMMA = ',';
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar cnLBRACE = '{';
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar cnRBRACE = '}';
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar cnLPAREN = '(';
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar cnRPAREN = ')';
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar status = '';
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar statusitems = [];
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar actual = '';
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar actualvalues = [];
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar expect= '';
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar expectedvalues = [];
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar obj = {};
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(1);
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = {toString:9};
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({toString:9})';
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(2);
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = {hasOwnProperty:"Hi"};
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({hasOwnProperty:"Hi"})';
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(3);
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = {toString:9, hasOwnProperty:"Hi"};
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({toString:9, hasOwnProperty:"Hi"})';
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(4);
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectobj = {prop1:1, toString:9, hasOwnProperty:"Hi"};
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// TRY THE SAME THING IN EVAL CODE
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvar s = '';
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(5);
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projects = 'obj = {toString:9}';
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecteval(s);
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({toString:9})';
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(6);
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projects = 'obj = {hasOwnProperty:"Hi"}';
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecteval(s);
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({hasOwnProperty:"Hi"})';
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(7);
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projects = 'obj = {toString:9, hasOwnProperty:"Hi"}';
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecteval(s);
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({toString:9, hasOwnProperty:"Hi"})';
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatus = inSection(8);
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projects = 'obj = {prop1:1, toString:9, hasOwnProperty:"Hi"}';
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecteval(s);
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectactual = uneval(obj);
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectexpect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectaddThis();
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// TRY THE SAME THING IN FUNCTION CODE
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction A()
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  status = inSection(9);
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var s = 'obj = {toString:9}';
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  eval(s);
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  actual = uneval(obj);
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  expect = '({toString:9})';
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  addThis();
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectA();
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction B()
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  status = inSection(10);
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var s = 'obj = {hasOwnProperty:"Hi"}';
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  eval(s);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  actual = uneval(obj);
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  expect = '({hasOwnProperty:"Hi"})';
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  addThis();
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectB();
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction C()
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  status = inSection(11);
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var s = 'obj = {toString:9, hasOwnProperty:"Hi"}';
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  eval(s);
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  actual = uneval(obj);
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  expect = '({toString:9, hasOwnProperty:"Hi"})';
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  addThis();
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectC();
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction D()
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  status = inSection(12);
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var s = 'obj = {prop1:1, toString:9, hasOwnProperty:"Hi"}';
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  eval(s);
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  actual = uneval(obj);
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  expect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  addThis();
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectD();
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//-----------------------------------------------------------------------------
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttest();
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//-----------------------------------------------------------------------------
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Sort properties alphabetically -
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addThis()
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  statusitems[UBound] = status;
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  actualvalues[UBound] = sortThis(actual);
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  expectedvalues[UBound] = sortThis(expect);
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  UBound++;
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Takes string of form '({"c", "b", "a", 2})' and returns '({"a","b","c",2})'
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction sortThis(sList)
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  sList = compactThis(sList);
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  sList = stripParens(sList);
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  sList = stripBraces(sList);
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var arr = sList.split(cnCOMMA);
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  arr = arr.sort();
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var ret = String(arr);
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  ret = addBraces(ret);
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  ret = addParens(ret);
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return ret;
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Strips out any whitespace from the text -
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction compactThis(text)
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var charCode = 0;
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var ret = '';
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  for (var i=0; i<text.length; i++)
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  {
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    charCode = text.charCodeAt(i);
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!isWhiteSpace(charCode))
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      ret += text.charAt(i);
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  }
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return ret;
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction isWhiteSpace(charCode)
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  switch (charCode)
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  {
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x0009):
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x000B):
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x000C):
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x0020):
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x000A):  // '\n'
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    case (0x000D):  // '\r'
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      return true;
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      break;
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    default:
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project      return false;
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  }
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * strips off parens at beginning and end of text -
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction stripParens(text)
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  // remember to escape the parens...
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var arr = text.match(/^\((.*)\)$/);
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  // defend against a null match...
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  if (arr != null && arr[1] != null)
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return arr[1];
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return text;
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * strips off braces at beginning and end of text -
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction stripBraces(text)
2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  // remember to escape the braces...
2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  var arr = text.match(/^\{(.*)\}$/);
2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  // defend against a null match...
2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  if (arr != null && arr[1] != null)
2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return arr[1];
2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return text;
2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addBraces(text)
2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return cnLBRACE + text + cnRBRACE;
2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction addParens(text)
2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  return cnLPAREN + text + cnRPAREN;
2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction test()
2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  enterFunc ('test');
2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  printBugNumber (bug);
2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  printStatus (summary);
2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  for (var i=0; i<UBound; i++)
2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  {
2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  }
2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project  exitFunc ('test');
2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
279