code: function( bodies, dt ){
  
              // half the timestep
              var dtdt = dt * dt
                  ,drag = 1 - this.options.drag
                  ,body = null
                  ,state
                  ;
  
              for ( var i = 0, l = bodies.length; i < l; ++i ){
  
                  body = bodies[ i ];
                  state = body.state;
  
                  // only integrate if the body isn't static
                  if ( body.treatment !== 'static' && !body.sleep() ){
  
                      // v = v_prev + 0.5 * (a_prev + a) * dt
                      // x = x_prev + v_prev * dt + 0.5 * a_prev * dt * dt
  
                      // Apply "air resistance".
                      if ( drag ){
  
                          state.vel.mult( drag );
                      }
  
                      // Apply acceleration
                      // v += 0.5 * (a_prev + a) * dt
                      state.old.vel.clone( state.vel );
                      state.vel.vadd( state.old.acc.vadd( state.acc ).mult( 0.5 * dt ) );
  
                      // Reset accel
                      state.old.acc.clone( state.acc );
                      state.acc.zero();
  
                      //
                      // Angular components
                      //
  
                      state.old.angular.vel = state.angular.vel;
                      state.old.angular.acc = state.angular.acc;
  
                      state.angular.vel += 0.5 * (state.angular.acc + state.old.angular.acc) * dt;
  
                      state.angular.acc = 0;
  
                      body.started( true );
  
                  } else {
                      // set the velocity and acceleration to zero!
                      state.vel.zero();
                      state.acc.zero();
                      state.angular.vel = 0;
                      state.angular.acc = 0;
                  }
              }
          }
docs: extended