This test checks our implementation of the special RegExp member variables. Properties of RegExp at startup: $1: {} (read-only) $2: {} (read-only) $3: {} (read-only) $4: {} (read-only) $5: {} (read-only) $6: {} (read-only) $7: {} (read-only) $8: {} (read-only) $9: {} (read-only) input: {} (read-write) lastMatch: {} (read-only) lastParen: {} (read-only) leftContext: {} (read-only) multiline: {false} (read-write) rightContext: {} (read-only) Properties of RegExp after /(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/.exec(<1234567890>): $1: {1} $2: {2} $3: {3} $4: {4} $5: {5} $6: {6} $7: {7} $8: {8} $9: {9} input: {<1234567890>} lastMatch: {1234567890} lastParen: {0} leftContext: {<} multiline: {false} rightContext: {>} RegExp.$0 does not exist RegExp.$10 does not exist RegExp doesn't use RegExp.input RegExp.multiline coerces values to booleans RegExp.input coerces values to strings Properties of RegExp after /(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/.exec(XXX): $1: {1} $2: {2} $3: {3} $4: {4} $5: {5} $6: {6} $7: {7} $8: {8} $9: {9} input: {0} lastMatch: {1234567890} lastParen: {0} leftContext: {<} multiline: {true} rightContext: {>} ---------- [Cleared RegExp values] ---------- Properties of RegExp after <1234567890>.search(/(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/): $1: {1} $2: {2} $3: {3} $4: {4} $5: {5} $6: {6} $7: {7} $8: {8} $9: {9} input: {<1234567890>} lastMatch: {1234567890} lastParen: {0} leftContext: {<} multiline: {true} rightContext: {>} ---------- [Cleared RegExp values] ---------- Properties of RegExp after <1234567890>.replace(/(1)(2)(3)(4)(5)(6)(7)(8)(9)(0)/): $1: {1} $2: {2} $3: {3} $4: {4} $5: {5} $6: {6} $7: {7} $8: {8} $9: {9} input: {<1234567890>} lastMatch: {1234567890} lastParen: {0} leftContext: {<} multiline: {true} rightContext: {>}