Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 525780575224d6df06364a6f2c688aea0068da15..bd6af49936db092999561d78a634b5bb3ebd3a99 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -1950,6 +1950,53 @@ void Interpreter::DoTestUndetectable(InterpreterAssembler* assembler) { |
__ Dispatch(); |
} |
+// TestNull <src> |
+// |
+// Test if the value in the <src> register is strictly equal to Null. |
rmcilroy
2016/12/14 18:50:00
nit Null -> null
mythria
2016/12/15 09:27:39
Done.
|
+void Interpreter::DoTestNull(InterpreterAssembler* assembler) { |
+ Node* reg_index = __ BytecodeOperandReg(0); |
+ Node* object = __ LoadRegister(reg_index); |
+ Node* null_value = __ HeapConstant(isolate_->factory()->null_value()); |
+ |
+ Label equal(assembler), end(assembler); |
+ __ GotoIf(__ WordEqual(object, null_value), &equal); |
+ __ SetAccumulator(__ BooleanConstant(false)); |
+ __ Goto(&end); |
+ |
+ __ Bind(&equal); |
+ { |
+ __ SetAccumulator(__ BooleanConstant(true)); |
+ __ Goto(&end); |
+ } |
+ |
+ __ Bind(&end); |
+ __ Dispatch(); |
+} |
+ |
+// TestUndefined <src> |
+// |
+// Test if the value in the <src> register is strictly equal to Undefined. |
rmcilroy
2016/12/14 18:50:00
nit - Undefined -> undefined.
mythria
2016/12/15 09:27:39
Done.
|
+void Interpreter::DoTestUndefined(InterpreterAssembler* assembler) { |
+ Node* reg_index = __ BytecodeOperandReg(0); |
+ Node* object = __ LoadRegister(reg_index); |
+ Node* undefined_value = |
+ __ HeapConstant(isolate_->factory()->undefined_value()); |
+ |
+ Label equal(assembler), end(assembler); |
+ __ GotoIf(__ WordEqual(object, undefined_value), &equal); |
+ __ SetAccumulator(__ BooleanConstant(false)); |
+ __ Goto(&end); |
+ |
+ __ Bind(&equal); |
+ { |
+ __ SetAccumulator(__ BooleanConstant(true)); |
+ __ Goto(&end); |
+ } |
+ |
+ __ Bind(&end); |
+ __ Dispatch(); |
+} |
+ |
// Jump <imm> |
// |
// Jump by number of bytes represented by the immediate operand |imm|. |