OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/execution.h" | 7 #include "src/execution.h" |
8 #include "src/handles.h" | 8 #include "src/handles.h" |
9 #include "src/interpreter/bytecode-array-builder.h" | 9 #include "src/interpreter/bytecode-array-builder.h" |
10 #include "src/interpreter/bytecode-array-iterator.h" | 10 #include "src/interpreter/bytecode-array-iterator.h" |
(...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1376 CHECK(return_value->IsBoolean()); | 1376 CHECK(return_value->IsBoolean()); |
1377 CHECK_EQ(return_value->BooleanValue(), | 1377 CHECK_EQ(return_value->BooleanValue(), |
1378 CompareC(Token::Value::NE_STRICT, inputs_number[i], | 1378 CompareC(Token::Value::NE_STRICT, inputs_number[i], |
1379 inputs_number[j])); | 1379 inputs_number[j])); |
1380 } | 1380 } |
1381 } | 1381 } |
1382 } | 1382 } |
1383 | 1383 |
1384 TEST(InterpreterInstanceOf) { | 1384 TEST(InterpreterInstanceOf) { |
1385 HandleAndZoneScope handles; | 1385 HandleAndZoneScope handles; |
1386 // TODO(4447): The new ES6 'instanceof' operator is fully desugared in the | |
1387 // parser and the Token::INSTANCEOF is not needed anymore. This test only | |
1388 // makes sense with --no-harmony-instanceof and can be removed once we | |
1389 // deprecate the ability to switch to old skool ES5 'instanceof' for good. | |
1390 FLAG_harmony_instanceof = false; | |
1391 i::Factory* factory = handles.main_isolate()->factory(); | 1386 i::Factory* factory = handles.main_isolate()->factory(); |
1392 Handle<i::String> name = factory->NewStringFromAsciiChecked("cons"); | 1387 Handle<i::String> name = factory->NewStringFromAsciiChecked("cons"); |
1393 Handle<i::JSFunction> func = factory->NewFunction(name); | 1388 Handle<i::JSFunction> func = factory->NewFunction(name); |
1394 Handle<i::JSObject> instance = factory->NewJSObject(func); | 1389 Handle<i::JSObject> instance = factory->NewJSObject(func); |
1395 Handle<i::Object> other = factory->NewNumber(3.3333); | 1390 Handle<i::Object> other = factory->NewNumber(3.3333); |
1396 Handle<i::Object> cases[] = {Handle<i::Object>::cast(instance), other}; | 1391 Handle<i::Object> cases[] = {Handle<i::Object>::cast(instance), other}; |
1397 for (size_t i = 0; i < arraysize(cases); i++) { | 1392 for (size_t i = 0; i < arraysize(cases); i++) { |
1398 bool expected_value = (i == 0); | 1393 bool expected_value = (i == 0); |
1399 BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0, | 1394 BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0, |
1400 0, 1); | 1395 0, 1); |
(...skipping 2767 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4168 CHECK(return_value->SameValue(*tests[i].second)); | 4163 CHECK(return_value->SameValue(*tests[i].second)); |
4169 } | 4164 } |
4170 | 4165 |
4171 FLAG_ignition_generators = old_flag; | 4166 FLAG_ignition_generators = old_flag; |
4172 } | 4167 } |
4173 | 4168 |
4174 | 4169 |
4175 } // namespace interpreter | 4170 } // namespace interpreter |
4176 } // namespace internal | 4171 } // namespace internal |
4177 } // namespace v8 | 4172 } // namespace v8 |
OLD | NEW |