PageRenderTime 21ms CodeModel.GetById 16ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/services/sync/tps/extensions/mozmill/resource/stdlib/arrays.js

http://github.com/zpao/v8monkey
JavaScript | 93 lines | 51 code | 6 blank | 36 comment | 22 complexity | 9b556529c56c2044bce5a9810b2f1446 MD5 | raw file
 1// ***** BEGIN LICENSE BLOCK *****// ***** BEGIN LICENSE BLOCK *****
 2// Version: MPL 1.1/GPL 2.0/LGPL 2.1
 3//
 4// The contents of this file are subject to the Mozilla Public License Version
 5// 1.1 (the "License"); you may not use this file except in compliance with
 6// the License. You may obtain a copy of the License at
 7// http://www.mozilla.org/MPL/
 8//
 9// Software distributed under the License is distributed on an "AS IS" basis,
10// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11// for the specific language governing rights and limitations under the
12// License.
13//
14// The Original Code is Mozilla Corporation Code.
15//
16// The Initial Developer of the Original Code is
17// Mikeal Rogers.
18// Portions created by the Initial Developer are Copyright (C) 2008
19// the Initial Developer. All Rights Reserved.
20//
21// Contributor(s):
22//  Mikeal Rogers <mikeal.rogers@gmail.com>
23//
24// Alternatively, the contents of this file may be used under the terms of
25// either the GNU General Public License Version 2 or later (the "GPL"), or
26// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27// in which case the provisions of the GPL or the LGPL are applicable instead
28// of those above. If you wish to allow use of your version of this file only
29// under the terms of either the GPL or the LGPL, and not to allow others to
30// use your version of this file under the terms of the MPL, indicate your
31// decision by deleting the provisions above and replace them with the notice
32// and other provisions required by the GPL or the LGPL. If you do not delete
33// the provisions above, a recipient may use your version of this file under
34// the terms of any one of the MPL, the GPL or the LGPL.
35//
36// ***** END LICENSE BLOCK *****
37
38var EXPORTED_SYMBOLS = ['inArray', 'getSet', 'indexOf', 'rindexOf', 'compare'];
39
40function inArray (array, value) {
41  for (i in array) {
42    if (value == array[i]) {
43      return true;
44    }
45  }
46  return false;
47}
48
49function getSet (array) {
50  var narray = [];
51  for (i in array) {
52    if ( !inArray(narray, array[i]) ) {
53      narray.push(array[i]);
54    }
55  }
56  return narray;
57}
58
59function indexOf (array, v, offset) {
60  for (i in array) {
61    if (offset == undefined || i >= offset) {
62      if ( !isNaN(i) && array[i] == v) {
63        return new Number(i);
64      }
65    }
66  }
67  return -1;
68}
69
70function rindexOf (array, v) {
71  var l = array.length;
72  for (i in array) {
73    if (!isNaN(i)) {
74      var i = new Number(i)
75    }
76    if (!isNaN(i) && array[l - i] == v) {
77      return l - i;
78    }
79  }
80  return -1;
81}
82
83function compare (array, carray) {
84  if (array.length != carray.length) {
85    return false;
86  }
87  for (i in array) {
88    if (array[i] != carray[i]) {
89      return false;
90    }
91  }
92  return true;
93}