Index: src/code-stub-assembler.cc |
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc |
index 63f2462884f421350e33818b4c260c2867c3e5c2..a12587751cc4b8ded25ef17d5e226a92c1dc0ad3 100644 |
--- a/src/code-stub-assembler.cc |
+++ b/src/code-stub-assembler.cc |
@@ -3363,7 +3363,8 @@ Node* ToDirectStringAssembler::TryToDirect(Label* if_bailout) { |
Label if_isthin(this); |
Label out(this); |
- Goto(&dispatch); |
+ Branch(IsSequentialStringInstanceType(var_instance_type_.value()), &out, |
+ &dispatch); |
// Dispatch based on string representation. |
Bind(&dispatch); |
@@ -3440,7 +3441,7 @@ Node* ToDirectStringAssembler::TryToSequential(StringPointerKind ptr_kind, |
CHECK(ptr_kind == PTR_TO_DATA || ptr_kind == PTR_TO_STRING); |
Variable var_result(this, MachineType::PointerRepresentation()); |
- Label out(this), if_issequential(this), if_isexternal(this); |
+ Label out(this), if_issequential(this), if_isexternal(this, Label::kDeferred); |
Branch(is_external(), &if_isexternal, &if_issequential); |
Bind(&if_issequential); |