New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

benchmark

Package Overview
Dependencies
Maintainers
2
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

benchmark - npm Package Compare versions

Comparing version 0.1.341 to 0.1.342

589

docs/benchmark.md

@@ -1,7 +0,7 @@

# Benchmark
# Benchmark.js API documentation
## `Benchmark`
* [`Benchmark`](#Benchmark)
* [`Benchmark.CALIBRATIONS`](#static-CALIBRATIONS)
* [`Benchmark.platform`](#static-platform)
* [`Benchmark.version`](#static-version)
* [`Benchmark.clearStorage`](#static-clearStorage)
* [`Benchmark.each`](#static-each)

@@ -17,3 +17,2 @@ * [`Benchmark.extend`](#static-extend)

* [`Benchmark.isArray`](#static-isArray)
* [`Benchmark.isCalibrated`](#static-isCalibrated)
* [`Benchmark.isClassOf`](#static-isClassOf)

@@ -28,14 +27,11 @@ * [`Benchmark.isHostType`](#static-isHostType)

# Benchmark.prototype
* [`Benchmark#CALIBRATION_INDEX`](#CALIBRATION_INDEX)
## `Benchmark.prototype`
* [`Benchmark#CYCLE_DELAY`](#CYCLE_DELAY)
* [`Benchmark#DEFAULT_ASYNC`](#DEFAULT_ASYNC)
* [`Benchmark#DETECT_INFINITY`](#DETECT_INFINITY)
* [`Benchmark#INIT_RUN_COUNT`](#INIT_RUN_COUNT)
* [`Benchmark#MAX_BURST_TIME`](#MAX_BURST_TIME)
* [`Benchmark#MAX_TIME_ELAPSED`](#MAX_TIME_ELAPSED)
* [`Benchmark#ME`](#ME)
* [`Benchmark#MIN_SAMPLE_SIZE`](#MIN_SAMPLE_SIZE)
* [`Benchmark#MIN_TIME`](#MIN_TIME)
* [`Benchmark#MoE`](#MoE)
* [`Benchmark#RME`](#RME)
* [`Benchmark#SD`](#SD)
* [`Benchmark#SEM`](#SEM)

@@ -47,2 +43,3 @@ * [`Benchmark#aborted`](#aborted)

* [`Benchmark#cycles`](#cycles)
* [`Benchmark#deviation`](#deviation)
* [`Benchmark#elapsed`](#elapsed)

@@ -53,3 +50,2 @@ * [`Benchmark#error`](#error)

* [`Benchmark#period`](#period)
* [`Benchmark#persist`](#persist)
* [`Benchmark#running`](#running)

@@ -74,6 +70,6 @@ * [`Benchmark#size`](#size)

# Benchmark.Suite
## `Benchmark.Suite`
* [`Benchmark.Suite`](#Suite)
# Benchmark.Suite.prototype
## `Benchmark.Suite.prototype`
* [`Benchmark.Suite#aborted`](#aborted)

@@ -100,8 +96,8 @@ * [`Benchmark.Suite#length`](#length)

# Benchmark
## <a name="Benchmark" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L125" title="View in source">Benchmark(name, fn, options)</a>
## `Benchmark`
### <a name="Benchmark" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L117" title="View in source">`Benchmark(name, fn, options)`</a>
Benchmark constructor.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `name` *(String)*: A name to identify the benchmark.

@@ -111,3 +107,3 @@ 2. `fn` *(Function)*: The test to benchmark.

### Example
#### Example
// basic usage

@@ -150,53 +146,45 @@ var bench = new Benchmark(fn);

## <a name="static-CALIBRATIONS" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2265" title="View in source">Benchmark.CALIBRATIONS</a>
*(Array)*: Benchmarks to establish iteration overhead.
<sup><code>[&#9650;][1]</code></sup>
## <a name="static-platform" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1628" title="View in source">Benchmark.platform</a>
## <a name="static-platform" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1471" title="View in source">`Benchmark.platform`</a>
*(Boolean)*: Platform object containing browser name, version, and operating system.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="static-version" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1794" title="View in source">Benchmark.version</a>
## <a name="static-version" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1655" title="View in source">`Benchmark.version`</a>
*(String)*: The version number.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="static-clearStorage" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L519" title="View in source">Benchmark.clearStorage()</a>
Removes all benchmark data from local storage.
<sup><code>[&#9650;][1]</code></sup>
## <a name="static-each" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L543" title="View in source">Benchmark.each(array, callback)</a>
## <a name="static-each" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L469" title="View in source">`Benchmark.each(array, callback)`</a>
A generic bare-bones `Array#forEach` solution.
Callbacks may terminate the loop by explicitly returning `false`.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.
2. `callback` *(Function)*: The function called per iteration.
### Returns
#### Returns
*(Array)*: The array iterated over.
## <a name="static-extend" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L563" title="View in source">Benchmark.extend(destination, source)</a>
## <a name="static-extend" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L489" title="View in source">`Benchmark.extend(destination, source)`</a>
Copies own/inherited properties of a source object to the destination object.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `destination` *(Object)*: The destination object.
2. `[source={}]` *(Object)*: The source object.
### Returns
#### Returns
*(Object)*: The destination object.
## <a name="static-filter" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L594" title="View in source">Benchmark.filter(array, callback)</a>
## <a name="static-filter" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L520" title="View in source">`Benchmark.filter(array, callback)`</a>
A generic bare-bones `Array#filter` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.
2. `callback` *(Function|String)*: The function/alias called per iteration.
### Returns
#### Returns
*(Array)*: A new array of values that passed callback filter.
### Example
#### Example
// get odd numbers

@@ -216,57 +204,57 @@ Benchmark.filter([1, 2, 3, 4, 5], function(n) {

## <a name="static-forIn" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L623" title="View in source">Benchmark.forIn(object, callback)</a>
## <a name="static-forIn" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L550" title="View in source">`Benchmark.forIn(object, callback)`</a>
A generic bare-bones for-in solution for an object's own properties.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `object` *(Object)*: The object to iterate over.
2. `callback` *(Function)*: The function called per iteration.
### Returns
#### Returns
*(Object)*: The object iterated over.
## <a name="static-formatNumber" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L639" title="View in source">Benchmark.formatNumber(number)</a>
## <a name="static-formatNumber" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L566" title="View in source">`Benchmark.formatNumber(number)`</a>
Converts a number to a more readable comma-separated string representation.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `number` *(Number)*: The number to convert.
### Returns
#### Returns
*(String)*: The more readable string representation.
## <a name="static-hasKey" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L657" title="View in source">Benchmark.hasKey(object, key)</a>
## <a name="static-hasKey" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L584" title="View in source">`Benchmark.hasKey(object, key)`</a>
Checks if an object has the specified key as a direct property.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `object` *(Object)*: The object to check.
2. `key` *(String)*: The key to check for.
### Returns
#### Returns
*(Boolean)*: Returns `true` if key is a direct property, else `false`.
## <a name="static-indexOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L686" title="View in source">Benchmark.indexOf(array, value)</a>
## <a name="static-indexOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L613" title="View in source">`Benchmark.indexOf(array, value)`</a>
A generic bare-bones `Array#indexOf` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.
2. `value` *(Mixed)*: The value to search for.
### Returns
#### Returns
*(Number)*: The index of the matched value or `-1`.
## <a name="static-interpolate" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L832" title="View in source">Benchmark.interpolate(string, object)</a>
## <a name="static-interpolate" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L759" title="View in source">`Benchmark.interpolate(string, object)`</a>
Modify a string by replacing named tokens with matching object property values.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `string` *(String)*: The string to modify.
2. `object` *(Object)*: The template object.
### Returns
#### Returns
*(String)*: The modified string.
### Example
#### Example
Benchmark.interpolate('#{greet} #{who}!', {

@@ -277,7 +265,7 @@ 'greet': 'Hello',

## <a name="static-invoke" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L735" title="View in source">Benchmark.invoke(benches, name)</a>
## <a name="static-invoke" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L662" title="View in source">`Benchmark.invoke(benches, name)`</a>
Invokes a method on all items in an array.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `benches` *(Array)*: Array of benchmarks to iterate over.

@@ -287,6 +275,6 @@ 2. `name` *(String|Object)*: The name of the method to invoke OR options object.

### Returns
#### Returns
*(Array)*: A new array of values returned from each method invoked.
### Example
#### Example
// invoke `reset` on all benchmarks

@@ -320,48 +308,41 @@ Benchmark.invoke(benches, 'reset');

## <a name="static-isArray" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L847" title="View in source">Benchmark.isArray(value)</a>
## <a name="static-isArray" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L774" title="View in source">`Benchmark.isArray(value)`</a>
Determines if the given value is an array.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `value` *(Mixed)*: The value to check.
### Returns
#### Returns
*(Boolean)*: Returns true if value is an array, else false.
## <a name="static-isCalibrated" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L857" title="View in source">Benchmark.isCalibrated()</a>
Checks if calibration benchmarks have completed.
<sup><code>[&#9650;][1]</code></sup>
### Returns
*(Boolean)*: Returns true if calibrated, false if not.
## <a name="static-isClassOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L872" title="View in source">Benchmark.isClassOf(object, name)</a>
## <a name="static-isClassOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L786" title="View in source">`Benchmark.isClassOf(object, name)`</a>
Checks if an object is of the specified class.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `object` *(Object)*: The object.
2. `name` *(String)*: The name of the class.
### Returns
#### Returns
*(Boolean)*: Returns true if of the class, else false.
## <a name="static-isHostType" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L886" title="View in source">Benchmark.isHostType(object, property)</a>
## <a name="static-isHostType" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L800" title="View in source">`Benchmark.isHostType(object, property)`</a>
Host objects can return type values that are different from their actual
data type. The objects we are concerned with usually return non-primitive
types of object, function, or unknown.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `object` *(Mixed)*: The owner of the property.
2. `property` *(String)*: The property name to check.
### Returns
#### Returns
*(Boolean)*: Returns true if the property value is a non-primitive, else false.
## <a name="static-join" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L900" title="View in source">Benchmark.join(object, separator1, separator2)</a>
## <a name="static-join" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L814" title="View in source">`Benchmark.join(object, separator1, separator2)`</a>
Creates a string of joined array values or object key-value pairs.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `object` *(Array|Object)*: The object to operate on.

@@ -371,36 +352,36 @@ 2. `[separator1=',']` *(String)*: The separator used between key-value pairs.

### Returns
#### Returns
*(String)*: The joined result.
## <a name="static-map" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L922" title="View in source">Benchmark.map(array, callback)</a>
## <a name="static-map" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L836" title="View in source">`Benchmark.map(array, callback)`</a>
A generic bare-bones `Array#map` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.
2. `callback` *(Function)*: The function called per iteration.
### Returns
#### Returns
*(Array)*: A new array of values returned by the callback.
## <a name="static-noop" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L934" title="View in source">Benchmark.noop()</a>
## <a name="static-noop" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L848" title="View in source">`Benchmark.noop()`</a>
A no-operation function.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="static-pluck" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L946" title="View in source">Benchmark.pluck(array, property)</a>
## <a name="static-pluck" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L860" title="View in source">`Benchmark.pluck(array, property)`</a>
Retrieves the value of a specified property from all items in an array.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.
2. `property` *(String)*: The property to pluck.
### Returns
#### Returns
*(Array)*: A new array of property values.
## <a name="static-reduce" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L961" title="View in source">Benchmark.reduce(array, callback, accumulator)</a>
## <a name="static-reduce" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L875" title="View in source">`Benchmark.reduce(array, callback, accumulator)`</a>
A generic bare-bones `Array#reduce` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `array` *(Array)*: The array to iterate over.

@@ -410,156 +391,144 @@ 2. `callback` *(Function)*: The function called per iteration.

### Returns
#### Returns
*(Mixed)*: The accumulator.
## <a name="static-trim" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L975" title="View in source">Benchmark.trim(string)</a>
## <a name="static-trim" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L889" title="View in source">`Benchmark.trim(string)`</a>
A generic bare-bones `String#trim` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `string` *(String)*: The string to trim.
### Returns
#### Returns
*(String)*: The trimmed string.
# Benchmark.prototype
## <a name="CALIBRATION_INDEX" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1869" title="View in source">Benchmark#CALIBRATION_INDEX</a>
*(Number)*: The index of the calibration benchmark to use when computing results.
<sup><code>[&#9650;][1]</code></sup>
## <a name="CYCLE_DELAY" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1876" title="View in source">Benchmark#CYCLE_DELAY</a>
## `Benchmark.prototype`
## <a name="CYCLE_DELAY" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1724" title="View in source">`Benchmark#CYCLE_DELAY`</a>
*(Number)*: The delay between test cycles *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="DEFAULT_ASYNC" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1883" title="View in source">Benchmark#DEFAULT_ASYNC</a>
## <a name="DEFAULT_ASYNC" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1731" title="View in source">`Benchmark#DEFAULT_ASYNC`</a>
*(Boolean)*: A flag to indicate methods will run asynchronously by default.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="DETECT_INFINITY" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1890" title="View in source">Benchmark#DETECT_INFINITY</a>
*(Boolean)*: A flag to indicate protection against large run counts if Infinity ops/sec is detected.
<sup><code>[&#9650;][1]</code></sup>
## <a name="INIT_RUN_COUNT" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1897" title="View in source">Benchmark#INIT_RUN_COUNT</a>
## <a name="INIT_RUN_COUNT" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1738" title="View in source">`Benchmark#INIT_RUN_COUNT`</a>
*(Number)*: The default number of times to execute a test on a benchmark's first cycle.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="MAX_BURST_TIME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1904" title="View in source">Benchmark#MAX_BURST_TIME</a>
*(Number)*: The maximum time an async run is allowed to perform a burst of synchronous cycles *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
## <a name="MAX_TIME_ELAPSED" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1911" title="View in source">Benchmark#MAX_TIME_ELAPSED</a>
## <a name="MAX_TIME_ELAPSED" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1745" title="View in source">`Benchmark#MAX_TIME_ELAPSED`</a>
*(Number)*: The maximum time a benchmark is allowed to run before finishing *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="MIN_TIME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1918" title="View in source">Benchmark#MIN_TIME</a>
## <a name="ME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1828" title="View in source">`Benchmark#ME`</a>
*(Number)*: The margin of error.
[&#9650;][1]
## <a name="MIN_SAMPLE_SIZE" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1752" title="View in source">`Benchmark#MIN_SAMPLE_SIZE`</a>
*(Number)*: The minimum sample size required to perform statistical analysis.
[&#9650;][1]
## <a name="MIN_TIME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1759" title="View in source">`Benchmark#MIN_TIME`</a>
*(Number)*: The time needed to reduce the percent uncertainty of measurement to `1`% *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="MoE" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1994" title="View in source">Benchmark#MoE</a>
*(Number)*: The margin of error.
<sup><code>[&#9650;][1]</code></sup>
## <a name="RME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2001" title="View in source">Benchmark#RME</a>
## <a name="RME" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1835" title="View in source">`Benchmark#RME`</a>
*(Number)*: The relative margin of error *(expressed as a percentage of the mean)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="SD" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2008" title="View in source">Benchmark#SD</a>
*(Number)*: The sample standard deviation.
<sup><code>[&#9650;][1]</code></sup>
## <a name="SEM" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2015" title="View in source">Benchmark#SEM</a>
## <a name="SEM" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1842" title="View in source">`Benchmark#SEM`</a>
*(Number)*: The standard error of the mean.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="aborted" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1960" title="View in source">Benchmark#aborted</a>
## <a name="aborted" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1801" title="View in source">`Benchmark#aborted`</a>
*(Boolean)*: A flag to indicate if the benchmark is aborted.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="count" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1925" title="View in source">Benchmark#count</a>
## <a name="count" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1766" title="View in source">`Benchmark#count`</a>
*(Number)*: The number of times a test was executed.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="created" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1932" title="View in source">Benchmark#created</a>
## <a name="created" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1773" title="View in source">`Benchmark#created`</a>
*(Number)*: A timestamp of when the benchmark was created.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="cycle" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2051" title="View in source">Benchmark#cycle</a>
## <a name="cycle" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1885" title="View in source">`Benchmark#cycle`</a>
*(Number)*: The time taken to complete the last cycle *(secs)*
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="cycles" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1939" title="View in source">Benchmark#cycles</a>
## <a name="cycles" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1780" title="View in source">`Benchmark#cycles`</a>
*(Number)*: The number of cycles performed while benchmarking.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="elapsed" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2058" title="View in source">Benchmark#elapsed</a>
## <a name="deviation" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1849" title="View in source">`Benchmark#deviation`</a>
*(Number)*: The sample standard deviation.
[&#9650;][1]
## <a name="elapsed" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1892" title="View in source">`Benchmark#elapsed`</a>
*(Number)*: The time taken to complete the benchmark *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="error" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1946" title="View in source">Benchmark#error</a>
## <a name="error" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1787" title="View in source">`Benchmark#error`</a>
*(Object|Null)*: The error object if the test failed.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="hz" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1953" title="View in source">Benchmark#hz</a>
## <a name="hz" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1794" title="View in source">`Benchmark#hz`</a>
*(Number)*: The number of executions per second.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="mean" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2022" title="View in source">Benchmark#mean</a>
## <a name="mean" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1856" title="View in source">`Benchmark#mean`</a>
*(Number)*: The sample arithmetic mean.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="period" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2065" title="View in source">Benchmark#period</a>
## <a name="period" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1899" title="View in source">`Benchmark#period`</a>
*(Number)*: The time taken to execute the test once *(secs)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="persist" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1967" title="View in source">Benchmark#persist</a>
*(Mixed)*: A flag to indicate if results persist OR the number of days to persist.
<sup><code>[&#9650;][1]</code></sup>
## <a name="running" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1974" title="View in source">Benchmark#running</a>
## <a name="running" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1808" title="View in source">`Benchmark#running`</a>
*(Boolean)*: A flag to indicate if the benchmark is running.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="size" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2029" title="View in source">Benchmark#size</a>
## <a name="size" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1863" title="View in source">`Benchmark#size`</a>
*(Number)*: The sample size.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="start" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2072" title="View in source">Benchmark#start</a>
## <a name="start" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1906" title="View in source">`Benchmark#start`</a>
*(Number)*: A timestamp of when the benchmark started *(ms)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="stats" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1987" title="View in source">Benchmark#stats</a>
## <a name="stats" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1821" title="View in source">`Benchmark#stats`</a>
*(Object)*: An object of stats including mean, margin or error, and standard deviation.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="stop" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2079" title="View in source">Benchmark#stop</a>
## <a name="stop" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1913" title="View in source">`Benchmark#stop`</a>
*(Number)*: A timestamp of when the benchmark finished *(ms)*.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="times" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2044" title="View in source">Benchmark#times</a>
## <a name="times" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1878" title="View in source">`Benchmark#times`</a>
*(Object)*: An object of timing data including cycle, elapsed, period, start, and stop.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="variance" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2036" title="View in source">Benchmark#variance</a>
## <a name="variance" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1870" title="View in source">`Benchmark#variance`</a>
*(Number)*: The sample variance.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="abort" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1213" title="View in source">Benchmark#abort()</a>
Aborts the benchmark as well as in progress calibrations without recording times.
<sup><code>[&#9650;][1]</code></sup>
## <a name="abort" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1127" title="View in source">`Benchmark#abort()`</a>
Aborts the benchmark without recording times.
[&#9650;][1]
### Returns
#### Returns
*(Object)*: The benchmark instance.
## <a name="addListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1124" title="View in source">Benchmark#addListener(type, listener)</a>
## <a name="addListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1038" title="View in source">`Benchmark#addListener(type, listener)`</a>
Registers a single listener of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
2. `listener` *(Function)*: The function called when the event occurs.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -571,13 +540,13 @@ bench.addListener('cycle', listener);

## <a name="clone" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1244" title="View in source">Benchmark#clone(options)</a>
## <a name="clone" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1155" title="View in source">`Benchmark#clone(options)`</a>
Creates a new benchmark using the same test and options.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `options` *(Object)*: Options object to overwrite cloned options.
### Returns
#### Returns
*(Object)*: The new benchmark instance.
### Example
#### Example
var bizarro = bench.clone({

@@ -587,34 +556,34 @@ 'name': 'doppelganger'

## <a name="compare" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1262" title="View in source">Benchmark#compare(other)</a>
Determines if the benchmark's hertz is higher than another.
<sup><code>[&#9650;][1]</code></sup>
## <a name="compare" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1173" title="View in source">`Benchmark#compare(other)`</a>
Determines if the benchmark's period is smaller than another.
[&#9650;][1]
### Arguments
#### Arguments
1. `other` *(Object)*: The benchmark to compare.
### Returns
*(Number)*: Returns `1` if higher, `-1` if lower, and `0` if indeterminate.
#### Returns
*(Number)*: Returns `1` if smaller, `-1` if larger, and `0` if indeterminate.
## <a name="emit" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1139" title="View in source">Benchmark#emit(type)</a>
## <a name="emit" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1053" title="View in source">`Benchmark#emit(type)`</a>
Executes all registered listeners of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
## <a name="on" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1980" title="View in source">Benchmark#on</a>
## <a name="on" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1814" title="View in source">`Benchmark#on`</a>
Alias of [`Benchmark#addListener`](#addListener).
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="removeAllListeners" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1196" title="View in source">Benchmark#removeAllListeners(type)</a>
## <a name="removeAllListeners" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1110" title="View in source">`Benchmark#removeAllListeners(type)`</a>
Unregisters all listeners of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -626,14 +595,14 @@ bench.removeAllListeners('cycle');

## <a name="removeListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1169" title="View in source">Benchmark#removeListener(type, listener)</a>
## <a name="removeListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1083" title="View in source">`Benchmark#removeListener(type, listener)`</a>
Unregisters a single listener of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
2. `listener` *(Function)*: The function to unregister.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -645,38 +614,42 @@ bench.removeListener('cycle', listener);

## <a name="reset" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1284" title="View in source">Benchmark#reset()</a>
## <a name="reset" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1193" title="View in source">`Benchmark#reset()`</a>
Reset properties and abort if running.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Returns
#### Returns
*(Object)*: The benchmark instance.
## <a name="run" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1497" title="View in source">Benchmark#run(async)</a>
## <a name="run" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1377" title="View in source">`Benchmark#run(async)`</a>
Runs the benchmark.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `[async=false]` *(Boolean)*: Flag to run asynchronously.
### Returns
#### Returns
*(Object)*: The benchmark instance.
## <a name="toString" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1325" title="View in source">Benchmark#toString()</a>
## <a name="toString" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1234" title="View in source">`Benchmark#toString()`</a>
Displays relevant benchmark information when coerced to a string.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
# Benchmark.Suite
## <a name="Suite" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L178" title="View in source">Benchmark.Suite(options)</a>
## `Benchmark.Suite`
### <a name="Suite" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L174" title="View in source">`Benchmark.Suite(name, options)`</a>
Suite constructor.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
1. `[options={}]` *(Object)*: Options object.
#### Arguments
1. `name` *(String)*: A name to identify the suite.
2. `[options={}]` *(Object)*: Options object.
### Example
#### Example
// basic usage
var suite = new Benchmark.Suite;
// or using a name first
var suite = new Benchmark.Suite('foo');
// or with options
var suite = new Benchmark.Suite({
var suite = new Benchmark.Suite('foo', {

@@ -703,27 +676,27 @@ // called when the suite starts running

# Benchmark.Suite.prototype
## <a name="aborted" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2132" title="View in source">Benchmark.Suite#aborted</a>
## `Benchmark.Suite.prototype`
## <a name="aborted" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1966" title="View in source">`Benchmark.Suite#aborted`</a>
*(Boolean)*: A flag to indicate if the suite is aborted.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="length" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2125" title="View in source">Benchmark.Suite#length</a>
## <a name="length" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1959" title="View in source">`Benchmark.Suite#length`</a>
*(Number)*: The number of benchmarks in the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="running" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2139" title="View in source">Benchmark.Suite#running</a>
## <a name="running" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1973" title="View in source">`Benchmark.Suite#running`</a>
*(Boolean)*: A flag to indicate if the suite is running.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="abort" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L987" title="View in source">Benchmark.Suite#abortSuite()</a>
## <a name="abort" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L901" title="View in source">`Benchmark.Suite#abortSuite()`</a>
Aborts all benchmarks in the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Returns
#### Returns
*(Object)*: The suite instance.
## <a name="add" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1017" title="View in source">Benchmark.Suite#add(name, fn, options)</a>
## <a name="add" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L931" title="View in source">`Benchmark.Suite#add(name, fn, options)`</a>
Adds a test to the benchmark suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `name` *(String)*: A name to identify the benchmark.

@@ -733,6 +706,6 @@ 2. `fn` *(Function)*: The test to benchmark.

### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -750,14 +723,14 @@ suite.add(fn);

## <a name="addListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1124" title="View in source">Benchmark.Suite#addListener(type, listener)</a>
## <a name="addListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1038" title="View in source">`Benchmark.Suite#addListener(type, listener)`</a>
Registers a single listener of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
2. `listener` *(Function)*: The function called when the event occurs.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -769,107 +742,107 @@ bench.addListener('cycle', listener);

## <a name="clone" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1034" title="View in source">Benchmark.Suite#cloneSuite(options)</a>
## <a name="clone" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L948" title="View in source">`Benchmark.Suite#cloneSuite(options)`</a>
Creates a new suite with cloned benchmarks.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `options` *(Object)*: Options object to overwrite cloned options.
### Returns
#### Returns
*(Object)*: The new suite instance.
## <a name="each" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2148" title="View in source">Benchmark.Suite#each</a>
## <a name="each" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1982" title="View in source">`Benchmark.Suite#each`</a>
A bare-bones `Array#forEach` solution.
Callbacks may terminate the loop by explicitly returning `false`.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `callback` *(Function)*: The function called per iteration.
### Returns
#### Returns
*(Object)*: The suite iterated over.
## <a name="emit" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1139" title="View in source">Benchmark.Suite#emit(type)</a>
## <a name="emit" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1053" title="View in source">`Benchmark.Suite#emit(type)`</a>
Executes all registered listeners of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
## <a name="filter" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1053" title="View in source">Benchmark.Suite#filterSuite(callback)</a>
## <a name="filter" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L967" title="View in source">`Benchmark.Suite#filterSuite(callback)`</a>
A bare-bones `Array#filter` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `callback` *(Function|String)*: The function/alias called per iteration.
### Returns
#### Returns
*(Object)*: A new suite of benchmarks that passed callback filter.
## <a name="indexOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2156" title="View in source">Benchmark.Suite#indexOf</a>
## <a name="indexOf" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1990" title="View in source">`Benchmark.Suite#indexOf`</a>
A bare-bones `Array#indexOf` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `value` *(Mixed)*: The value to search for.
### Returns
#### Returns
*(Number)*: The index of the matched value or `-1`.
## <a name="invoke" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2165" title="View in source">Benchmark.Suite#invoke</a>
## <a name="invoke" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1999" title="View in source">`Benchmark.Suite#invoke`</a>
Invokes a method on all benchmarks in the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `name` *(String|Object)*: The name of the method to invoke OR options object.
2. `[, arg1, arg2, ...]` *(Mixed)*: Arguments to invoke the method with.
### Returns
#### Returns
*(Array)*: A new array of values returned from each method invoked.
## <a name="map" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2173" title="View in source">Benchmark.Suite#map</a>
## <a name="map" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2007" title="View in source">`Benchmark.Suite#map`</a>
A bare-bones `Array#map` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `callback` *(Function)*: The function called per iteration.
### Returns
#### Returns
*(Array)*: A new array of values returned by the callback.
## <a name="on" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1980" title="View in source">Benchmark.Suite#on</a>
## <a name="on" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1814" title="View in source">`Benchmark.Suite#on`</a>
Alias of [`Benchmark#addListener`](#addListener).
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
## <a name="pluck" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2181" title="View in source">Benchmark.Suite#pluck</a>
## <a name="pluck" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2015" title="View in source">`Benchmark.Suite#pluck`</a>
Retrieves the value of a specified property from all benchmarks in the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `property` *(String)*: The property to pluck.
### Returns
#### Returns
*(Array)*: A new array of property values.
## <a name="reduce" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2190" title="View in source">Benchmark.Suite#reduce</a>
## <a name="reduce" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L2024" title="View in source">`Benchmark.Suite#reduce`</a>
A bare-bones `Array#reduce` solution.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `callback` *(Function)*: The function called per iteration.
2. `accumulator` *(Mixed)*: Initial value of the accumulator.
### Returns
#### Returns
*(Mixed)*: The accumulator.
## <a name="removeAllListeners" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1196" title="View in source">Benchmark.Suite#removeAllListeners(type)</a>
## <a name="removeAllListeners" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1110" title="View in source">`Benchmark.Suite#removeAllListeners(type)`</a>
Unregisters all listeners of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -881,14 +854,14 @@ bench.removeAllListeners('cycle');

## <a name="removeListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1169" title="View in source">Benchmark.Suite#removeListener(type, listener)</a>
## <a name="removeListener" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1083" title="View in source">`Benchmark.Suite#removeListener(type, listener)`</a>
Unregisters a single listener of a specified event type.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `type` *(String)*: The event type.
2. `listener` *(Function)*: The function to unregister.
### Returns
#### Returns
*(Object)*: The benchmark instance.
### Example
#### Example
// basic usage

@@ -900,18 +873,18 @@ bench.removeListener('cycle', listener);

## <a name="reset" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1067" title="View in source">Benchmark.Suite#resetSuite()</a>
## <a name="reset" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L981" title="View in source">`Benchmark.Suite#resetSuite()`</a>
Resets all benchmarks in the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Returns
#### Returns
*(Object)*: The suite instance.
## <a name="run" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L1083" title="View in source">Benchmark.Suite#runSuite(async, queued)</a>
## <a name="run" href="https://github.com/mathiasbynens/benchmark.js/blob/master/benchmark.js#L997" title="View in source">`Benchmark.Suite#runSuite(async, queued)`</a>
Runs the suite.
<sup><code>[&#9650;][1]</code></sup>
[&#9650;][1]
### Arguments
#### Arguments
1. `[async=false]` *(Boolean)*: Flag to run asynchronously.
2. `[queued=false]` *(Boolean)*: Flag to treat benchmarks as a queue.
### Returns
#### Returns
*(Object)*: The suite instance.

@@ -918,0 +891,0 @@

@@ -0,0 +0,0 @@ Copyright Mathias Bynens <http://mathiasbynens.be/>

{
"name": "benchmark",
"version": "0.1.341",
"version": "0.1.342",
"description": "A benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.",

@@ -5,0 +5,0 @@ "homepage": "http://benchmarkjs.com/",

@@ -6,7 +6,2 @@ (function() {

// hookup calibration notice
Benchmark.CALIBRATIONS[0].on('start', function() {
print('Calibrating...');
});
// check Benchmark.platform

@@ -13,0 +8,0 @@ print('Benchmark.platform: expected at least "Narwhal"; got "' +

@@ -6,7 +6,2 @@ (function() {

// hookup calibration notice
Benchmark.CALIBRATIONS[0].on('start', function() {
console.log('Calibrating...');
});
// check Benchmark.platform

@@ -13,0 +8,0 @@ console.log('Benchmark.platform: expected at least "Node.js"; got "' +

@@ -1,11 +0,7 @@

(function(global) {
(function(global, path) {
// load Benchmark
load('../benchmark.js');
path || (path = '../benchmark.js');
load(path + '/benchmark.js');
// hookup calibration notice
Benchmark.CALIBRATIONS[0].on('start', function() {
print('Calibrating...');
});
// check Benchmark.platform

@@ -46,2 +42,2 @@ print('Benchmark.platform: expected at least "Rhino"; got "' +

}(this));
}(this, arguments[0]));

@@ -6,7 +6,2 @@ (function() {

// hookup calibration notice
Benchmark.CALIBRATIONS[0].on('start', function() {
print('Calibrating...');
});
// check Benchmark.platform

@@ -13,0 +8,0 @@ print('Benchmark.platform: expected at least "RingoJS"; got "' +

@@ -37,5 +37,8 @@ module("Benchmark.platform");

.replace(/\bsystem\b/g, 'me.system')
.replace(/\bEnvironment\b/g, 'Object')
.replace(/\b(?:Environment|RuntimeObject)\b/g, 'Object')
.replace(/\bnav\.appMinorVersion/g, 'me.appMinorVersion')
.replace(/\bnav\.cpuClass/g, 'me.cpuClass')
.replace(/\bnav\.platform/g, 'me.platform')
.replace(/\bexternal/g, 'me.external')
.replace(/\b(?:me\.)?phantom/g, 'me.phantom')
.replace(/\bdoc\.documentMode/g, 'me.mode'));

@@ -55,3 +58,3 @@ }

var Tests = {
'Avant Browser on Windows Vista': {
'Avant Browser on Windows Server 2008 / Vista': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Avant Browser)',

@@ -66,19 +69,19 @@ 'mode': 8

'Android Browser 3.1.2 (like Safari 3.x) on Android 1.6': {
'Android Browser 3.1.2 (like Chrome 1.x) on Android 1.6': {
'ua': 'Mozilla/5.0 (Linux; U; Android 1.6; en-us; HTC_TATTOO_A3288 Build/DRC79) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'
},
'Android Browser (like Safari 4.x) on Android 2.1': {
'Android Browser (like Chrome 2.x) on Android 2.1': {
'ua': 'Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Sprint APA9292KT Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko)'
},
'Android Browser 4.0 (like Safari 4+) on Android 2.2': {
'Android Browser 4.0 (like Chrome 5.x) on Android 2.2': {
'ua': 'Mozilla/5.0 (Linux; U; Android 2.2; zh-cn;) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
},
'Android Browser 4.0 (like Safari 4+) on Android 2.2.1': {
'Android Browser 4.0 (like Chrome 5.x) on Android 2.2.1': {
'ua': 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
},
'Android Browser 4.1#{alpha} (platform preview; like Safari 4+) on Android 2.2.1': {
'Android Browser 4.1#{alpha} (platform preview; like Chrome 5.x) on Android 2.2.1': {
'ua': 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.1a Mobile Safari/533.1',

@@ -168,6 +171,16 @@ 'external': null

'Firefox 4.0#{beta}9 on Windows XP': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:2.0b9pre) Gecko/20110105 Firefox-4.0/4.0b9pre'
'Firefox 4.0#{beta}8 on Windows Server 2008 / Vista x64': {
'ua': 'Mozilla/5.0 (Windows NT 6.0; Win64; x64; rv:2.0b8pre) Gecko/20101213 Firefox/4.0b8pre',
'platform': 'Win64'
},
'Firefox 4.0#{beta}8 x86 on Windows Server 2008 R2 / 7 x64': {
'ua': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8pre) Gecko/20101114 Firefox/4.0b8pre',
'platform': 'Win32'
},
'Firefox 4.0#{beta}9 on Linux x86_64': {
'ua': 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110105 Firefox/4.0b9pre'
},
'Fennec 2.0#{beta}1 on Android': {

@@ -189,3 +202,3 @@ 'ua': 'Mozilla/5.0 (Android; Linux armv7l; rv:2.0b6pre) Gecko/20100907 Firefox/4.0b6pre Fennec/2.0b1pre'

'Flock 2.0.3 on Windows Vista': {
'Flock 2.0.3 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008121620 Firefox/3.0.5 Flock/2.0.3'

@@ -262,7 +275,9 @@ },

'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
'appMinorVersion': 'beta 2'
'appMinorVersion': 'beta 2',
'mode': 8
},
'IE 8.0 on Windows XP': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; chromeframe)'
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; chromeframe)',
'mode': 8
},

@@ -280,3 +295,17 @@

'IE 9.0#{beta} (platform preview) on Windows 7': {
'IE 8.0 x86 on Windows Server 2008 / Vista x64': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0)',
'cpuClass': 'x86',
'mode': 8,
'platform': 'Win32'
},
'IE 8.0 on Windows Server 2008 R2 / 7 x64': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)',
'cpuClass': 'x64',
'mode': 8,
'platform': 'Win64'
},
'IE 9.0#{beta} (platform preview) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -288,3 +317,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} (platform preview; running in IE 5 mode) on Windows 7': {
'IE 9.0#{beta} (platform preview; running in IE 5 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -296,3 +325,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} (platform preview; running in IE 7 mode) on Windows 7': {
'IE 9.0#{beta} (platform preview; running in IE 7 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -304,3 +333,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} (platform preview; running in IE 8 mode) on Windows 7': {
'IE 9.0#{beta} (platform preview; running in IE 8 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -312,3 +341,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} on Windows Vista': {
'IE 9.0#{beta} on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)',

@@ -318,3 +347,3 @@ 'appMinorVersion': 'beta'

'IE 9.0#{beta} (running in IE 5 mode) on Windows 7': {
'IE 9.0#{beta} (running in IE 5 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -325,3 +354,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} (running in IE 7 mode) on Windows 7': {
'IE 9.0#{beta} (running in IE 7 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -332,3 +361,3 @@ 'appMinorVersion': 'beta',

'IE 9.0#{beta} (running in IE 8 mode) on Windows 7': {
'IE 9.0#{beta} (running in IE 8 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -339,3 +368,3 @@ 'appMinorVersion': 'beta',

'IE 9.0 on Windows 7': {
'IE 9.0 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',

@@ -345,3 +374,3 @@ 'mode': 9

'Iron 0.2.152.0 on Windows Vista': {
'Iron 0.2.152.0 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Iron/0.2.152.0 Safari/41562480.525'

@@ -382,3 +411,3 @@ },

'Lunascape 6.1.7.21880 (Trident) on Windows 7': {
'Lunascape 6.1.7.21880 (Trident) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Lunascape 6.1.7.21880)',

@@ -388,7 +417,7 @@ 'mode': 8

'Lunascape 6.2.1.22445 (Gecko) on Windows Vista': {
'Lunascape 6.2.1.22445 (Gecko) on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.13) Gecko/20100917 Firefox/3.5.13 Lunascape/6.2.1.22445'
},
'Lunascape 6.3.1.22729#{beta} (platform preview; rendered by Trident) on Windows Vista': {
'Lunascape 6.3.1.22729#{beta} (platform preview; rendered by Trident) on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Lunascape/6.3.1.22729',

@@ -459,2 +488,13 @@ 'appMinorVersion': 'beta',

'PhantomJS 1.0.0 (like Safari 4.x) on Cygwin': {
'ua': 'Mozilla/5.0 (X11; U; Cygwin; C -) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) PhantomJS/1.0.0',
'phantom': {
'version': {
'major': 1,
'minor': 0,
'patch': 0
}
}
},
'Rhino': {

@@ -502,3 +542,3 @@ 'global': { },

'Safari 3.1.1 on Windows Vista': {
'Safari 3.1.1 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.17'

@@ -511,3 +551,3 @@ },

'Safari 3.1.2 on Windows Vista': {
'Safari 3.1.2 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pl-PL) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21'

@@ -520,3 +560,3 @@ },

'Safari 3.2 on Windows Vista': {
'Safari 3.2 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; hu-HU) AppleWebKit/525.26.2 (KHTML, like Gecko) Version/3.2 Safari/525.26.13'

@@ -533,3 +573,3 @@ },

'Safari 3.2.1 on Windows Vista': {
'Safari 3.2.1 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1'

@@ -546,3 +586,3 @@ },

'Safari 3.2.2 on Windows 7': {
'Safari 3.2.2 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1'

@@ -627,3 +667,3 @@ },

'Safari 4.0 on Windows Vista': {
'Safari 4.0 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru-RU) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16'

@@ -648,7 +688,7 @@ },

'Safari 4.0.2 on Windows Vista': {
'Safari 4.0.2 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1'
},
'Safari 4.0.2 on Windows 7': {
'Safari 4.0.2 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532+ (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1'

@@ -665,3 +705,3 @@ },

'Safari 4.0.3 on Windows Vista': {
'Safari 4.0.3 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9'

@@ -698,7 +738,7 @@ },

'Safari 4.0.4 on Windows Vista': {
'Safari 4.0.4 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'
},
'Safari 4.0.4 on Windows 7': {
'Safari 4.0.4 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ko-KR) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'

@@ -731,7 +771,7 @@ },

'Safari 4.0.5 on Windows Vista': {
'Safari 4.0.5 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7'
},
'Safari 4.0.5 on Windows 7': {
'Safari 4.0.5 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7'

@@ -764,7 +804,7 @@ },

'Safari 5.0 on Windows Vista': {
'Safari 5.0 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ja-JP) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16'
},
'Safari 5.0 on Windows 7': {
'Safari 5.0 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ja-JP) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16'

@@ -785,7 +825,7 @@ },

'Safari 5.0.2 on Windows Vista': {
'Safari 5.0.2 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; tr-TR) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5'
},
'Safari 5.0.2 on Windows 7': {
'Safari 5.0.2 on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-HK) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5'

@@ -802,6 +842,10 @@ },

'SeaMonkey 2.0#{beta}1 on Windows Vista': {
'SeaMonkey 2.0#{beta}1 on Windows Server 2008 / Vista': {
'ua': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.1pre) Gecko/20090717 SeaMonkey/2.0b1'
},
'SeaMonkey 2.0.3 on Linux x86_64': {
'ua': 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100205 SeaMonkey/2.0.3'
},
'SeaMonkey 2.0.8 on Windows XP': {

@@ -822,3 +866,3 @@ 'ua': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.13) Gecko/20100914 Mnenhy/0.8.3 SeaMonkey/2.0.8'

'Sleipnir 2.9.4 (running in IE 7 mode) on Windows Vista': {
'Sleipnir 2.9.4 (running in IE 7 mode) on Windows Server 2008 / Vista': {
'ua': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; Sleipnir/2.9.4)',

@@ -828,3 +872,3 @@ 'mode': 7

'Sleipnir 2.9.6 (Trident) on Windows 7': {
'Sleipnir 2.9.6 (Trident) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Sleipnir/2.9.6)',

@@ -839,3 +883,3 @@ 'mode': 8

'SlimBrowser (running in IE 5 mode) on Windows 7': {
'SlimBrowser (running in IE 5 mode) on Windows Server 2008 R2 / 7': {
'ua': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SlimBrowser)',

@@ -842,0 +886,0 @@ 'mode': 5

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc