         return _ops.length + " ops per " + _period + "ms (oldest " + oldest + ")";
     }
 
+    protected function makeArray (operations :int) :Array
+    {
+        var ops :Array = new Array(operations);
+        for (var ii :int =  0; ii < operations; ii++) {
+            ops[ii] = 0;
+        }
+        return ops;
+    }
+
     protected var _ops :Array;
     protected var _oldestOp :int;
     protected var _period :int;

     * if the limit is decreased.
     *
     * @param operations the new maximum number of operations.
     * @param period the new period.
     */
    public function reinit (operations :int, period :int) :void
    {
        var ops :Array = new Array(operations);
        // copy up to 'operations' of our most recent operations into our new array
        for (var ii :int = 0; ii < operations; ii++) {
            ops[operations-ii-1] = _ops[(_oldestOp + _ops.length - ii - 1) % _ops.length];

    {
        // if the oldest operation was performed less than _period ago, we need to throttle
        var elapsed :int = timeStamp - _ops[_oldestOp];
        // cope with negative time elapsed (shouldn't happen) by not throttling
        return (elapsed >= 0 && elapsed < _period);
    }

