aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/objects/js-regexp-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/objects/js-regexp-inl.h')
-rw-r--r--deps/v8/src/objects/js-regexp-inl.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/deps/v8/src/objects/js-regexp-inl.h b/deps/v8/src/objects/js-regexp-inl.h
index 23f7c69ade..8322a3c258 100644
--- a/deps/v8/src/objects/js-regexp-inl.h
+++ b/deps/v8/src/objects/js-regexp-inl.h
@@ -79,8 +79,18 @@ void JSRegExp::SetDataAt(int index, Object value) {
}
bool JSRegExp::HasCompiledCode() const {
- return TypeTag() == IRREGEXP && (DataAt(kIrregexpLatin1CodeIndex)->IsCode() ||
- DataAt(kIrregexpUC16CodeIndex)->IsCode());
+ if (TypeTag() != IRREGEXP) return false;
+#ifdef DEBUG
+ DCHECK(DataAt(kIrregexpLatin1CodeIndex)->IsCode() ||
+ DataAt(kIrregexpLatin1CodeIndex)->IsByteArray() ||
+ DataAt(kIrregexpLatin1CodeIndex) == Smi::FromInt(kUninitializedValue));
+ DCHECK(DataAt(kIrregexpUC16CodeIndex)->IsCode() ||
+ DataAt(kIrregexpUC16CodeIndex)->IsByteArray() ||
+ DataAt(kIrregexpUC16CodeIndex) == Smi::FromInt(kUninitializedValue));
+#endif // DEBUG
+ Smi uninitialized = Smi::FromInt(kUninitializedValue);
+ return (DataAt(kIrregexpLatin1CodeIndex) != uninitialized ||
+ DataAt(kIrregexpUC16CodeIndex) != uninitialized);
}
void JSRegExp::DiscardCompiledCodeForSerialization() {