build/testrunner.js
/*!
   * Assertion Constructor
   *
   * Creates object for chaining.
   *
   * `Assertion` objects contain metadata in the form of flags. Three flags can
   * be assigned during instantiation by passing arguments to this constructor:
   *
   * - `object`: This flag contains the target of the assertion. For example, in
   *   the assertion `expect(numKittens).to.equal(7);`, the `object` flag will
   *   contain `numKittens` so that the `equal` assertion can reference it when
   *   needed.
   *
   * - `message`: This flag contains an optional custom error message to be
   *   prepended to the error message that's generated by the assertion when it
   *   fails.
   *
   * - `ssfi`: This flag stands for "start stack function indicator". It
   *   contains a function reference that serves as the starting point for
   *   removing frames from the stack trace of the error that's created by the
   *   assertion when it fails. The goal is to provide a cleaner stack trace to
   *   end users by removing Chai's internal functions. Note that it only works
   *   in environments that support `Error.captureStackTrace`, and only when
   *   `Chai.config.includeStack` hasn't been set to `false`.
   *
   * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag
   *   should retain its current value, even as assertions are chained off of
   *   this object. This is usually set to `true` when creating a new assertion
   *   from within another assertion. It's also temporarily set to `true` before
   *   an overwritten assertion gets called by the overwriting assertion.
   *
   * @param {Mixed} obj target of the assertion
   * @param {String} msg (optional) custom error message
   * @param {Function} ssfi (optional) starting point for removing stack frames
   * @param {Boolean} lockSsfi (optional) whether or not the ssfi flag is locked
   * @api private
   */
Assertion Constructor
Creates object for chaining.

`Assertion` objects contain metadata in the form of flags. Three flags can
be assigned during instantiation by passing arguments to this constructor.

- `object`: This flag contains the target of the assertion.

- `message`: This flag contains an optional custom error message to be
prepended to the error message that's generated by the assertion when it
fails.

- `ssfi`: This flag stands for "start stack function indicator". It
contains a function reference that serves as the starting point for
removing frames from the stack trace of the error that's created by the
assertion when it fails. The goal is to provide a cleaner stack trace to
end users by removing Chai's internal functions.

- `lockSsfi`: This flag controls whether or not the given `ssfi` flag
should retain its current value, even as assertions are chained off of
this object. This is usually set to `true` when creating a new assertion
from within another assertion. It's also temporarily set to `true` before
an overwritten assertion gets called by the overwriting assertion.


Assertion Constructor Creates object for chaining . ` Assertion ` objects contain metadata in the form of flags . Three flags can be assigned during instantiation by passing arguments to this constructor . - ` object ` : This flag contains the target of the assertion . - ` message ` : This flag contains an optional custom error message to be prepended to the error message that ' s generated by the assertion when it fails . - ` ssfi ` : This flag stands for " start stack function indicator " . It contains a function reference that serves as the starting point for removing frames from the stack trace of the error that ' s created by the assertion when it fails . The goal is to provide a cleaner stack trace to end users by removing Chai ' s internal functions . - ` lockSsfi ` : This flag controls whether or not the given ` ssfi ` flag should retain its current value even as assertions are chained off of this object . This is usually set to ` true ` when creating a new assertion from within another assertion . It ' s also temporarily set to ` true ` before an overwritten assertion gets called by the overwriting assertion .
function Assertion (obj, msg, ssfi, lockSsfi) {
    flag(this, 'ssfi', ssfi || Assertion);
    flag(this, 'lockSsfi', lockSsfi);
    flag(this, 'object', obj);
    flag(this, 'message', msg);
    return util.proxify(this);
  }
function Assertion ( obj , msg , ssfi , lockSsfi ) { flag ( this , 'ssfi' , ssfi || Assertion ) ; flag ( this , 'lockSsfi' , lockSsfi ) ; flag ( this , 'object' , obj ) ; flag ( this , 'message' , msg ) ; return util . proxify ( this ) ; }
Assertion Constructor
 Creates object for chaining.
Assertion Constructor Creates object for chaining .