// Copyright 2014 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

Array.prototype.getStaggeredFromMiddle = function(i) {
  if (i >= this.length) {
    throw("getStaggeredFromMiddle: OOB");
  }
  var middle = Math.floor(this.length / 2);
  var index = middle + (((i % 2) == 0) ? (i / 2) : (((1 - i) / 2) - 1));
  return this[index];
}

Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}

Math.alignUp = function(raw, multiple) {
  return Math.floor((raw + multiple - 1) / multiple) * multiple;
}