nl_tokens: Legacy implementation of RegExp . prototype . exec
pl_tokens: function RegExpExecJS ( string ) { if ( ! IS_REGEXP ( this ) ) { throw MakeTypeError ( kIncompatibleMethodReceiver , 'RegExp.prototype.exec' , this ) ; } string = TO_STRING ( string ) ; var lastIndex = this . lastIndex ; // Conversion is required by the ES2015 specification (RegExpBuiltinExec // algorithm, step 4) even if the value is discarded for non-global RegExps. var i = TO_LENGTH ( lastIndex ) ; var updateLastIndex = REGEXP_GLOBAL ( this ) || REGEXP_STICKY ( this ) ; if ( updateLastIndex ) { if ( i < 0 || i > string . length ) { this . lastIndex = 0 ; return null ; } } else { i = 0 ; } // matchIndices is either null or the RegExpLastMatchInfo array. var matchIndices = % _RegExpExec ( this , string , i , RegExpLastMatchInfo ) ; if ( IS_NULL ( matchIndices ) ) { this . lastIndex = 0 ; return null ; } // Successful match. if ( updateLastIndex ) { this . lastIndex = RegExpLastMatchInfo [ CAPTURE1 ] ; } RETURN_NEW_RESULT_FROM_MATCH_INFO ( matchIndices , <mask> ) ; }