diff options
Diffstat (limited to 'chromium/v8/src/regexp/regexp-bytecode-generator.cc')
| -rw-r--r-- | chromium/v8/src/regexp/regexp-bytecode-generator.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/chromium/v8/src/regexp/regexp-bytecode-generator.cc b/chromium/v8/src/regexp/regexp-bytecode-generator.cc index e82b67b530a..8abd15384e7 100644 --- a/chromium/v8/src/regexp/regexp-bytecode-generator.cc +++ b/chromium/v8/src/regexp/regexp-bytecode-generator.cc @@ -182,7 +182,7 @@ void RegExpBytecodeGenerator::LoadCurrentCharacterImpl(int cp_offset, int eats_at_least) { DCHECK_GE(eats_at_least, characters); if (eats_at_least > characters && check_bounds) { - DCHECK(is_uint24(cp_offset + eats_at_least)); + DCHECK(is_int24(cp_offset + eats_at_least)); Emit(BC_CHECK_CURRENT_POSITION, cp_offset + eats_at_least); EmitOrLink(on_failure); check_bounds = false; // Load below doesn't need to check. @@ -329,11 +329,13 @@ void RegExpBytecodeGenerator::CheckNotBackReference(int start_reg, } void RegExpBytecodeGenerator::CheckNotBackReferenceIgnoreCase( - int start_reg, bool read_backward, Label* on_not_equal) { + int start_reg, bool read_backward, bool unicode, Label* on_not_equal) { DCHECK_LE(0, start_reg); DCHECK_GE(kMaxRegister, start_reg); - Emit(read_backward ? BC_CHECK_NOT_BACK_REF_NO_CASE_BACKWARD - : BC_CHECK_NOT_BACK_REF_NO_CASE, + Emit(read_backward ? (unicode ? BC_CHECK_NOT_BACK_REF_NO_CASE_UNICODE_BACKWARD + : BC_CHECK_NOT_BACK_REF_NO_CASE_BACKWARD) + : (unicode ? BC_CHECK_NOT_BACK_REF_NO_CASE_UNICODE + : BC_CHECK_NOT_BACK_REF_NO_CASE), start_reg); EmitOrLink(on_not_equal); } |
