diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2017-09-12 11:34:59 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-09-13 16:15:18 +0200 |
commit | d82e1075dbc2cec2d6598ade10c1f43805f690fd (patch) | |
tree | ccd242b9b491dfc341d1099fe11b0ef528839877 /deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc | |
parent | b4b7ac6ae811b2b5a3082468115dfb5a5246fe3f (diff) | |
download | node-new-d82e1075dbc2cec2d6598ade10c1f43805f690fd.tar.gz |
deps: update V8 to 6.1.534.36
PR-URL: https://github.com/nodejs/node/pull/14730
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc b/deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc index 8f0821fd81..fa33e69b73 100644 --- a/deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc +++ b/deps/v8/test/unittests/interpreter/bytecode-array-builder-unittest.cc @@ -117,8 +117,10 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { // Emit load / store lookup slots. builder.LoadLookupSlot(name, TypeofMode::NOT_INSIDE_TYPEOF) .LoadLookupSlot(name, TypeofMode::INSIDE_TYPEOF) - .StoreLookupSlot(name, LanguageMode::SLOPPY) - .StoreLookupSlot(name, LanguageMode::STRICT); + .StoreLookupSlot(name, LanguageMode::SLOPPY, LookupHoistingMode::kNormal) + .StoreLookupSlot(name, LanguageMode::SLOPPY, + LookupHoistingMode::kLegacySloppy) + .StoreLookupSlot(name, LanguageMode::STRICT, LookupHoistingMode::kNormal); // Emit load / store lookup slots with context fast paths. builder.LoadLookupContextSlot(name, TypeofMode::NOT_INSIDE_TYPEOF, 1, 0) @@ -153,7 +155,6 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .CallUndefinedReceiver(reg, empty, 1) .CallUndefinedReceiver(reg, single, 1) .CallUndefinedReceiver(reg, pair, 1) - .TailCall(reg, reg_list, 1) .CallRuntime(Runtime::kIsArray, reg) .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, reg_list, pair) .CallJSRuntime(Context::SPREAD_ITERABLE_INDEX, reg_list) @@ -189,6 +190,9 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .BinaryOperationSmiLiteral(Token::Value::SAR, Smi::FromInt(42), 2) .BinaryOperationSmiLiteral(Token::Value::SHR, Smi::FromInt(42), 2); + // Emit StringConcat operations. + builder.ToPrimitiveToString(reg, 1).StringConcat(pair); + // Emit count operatior invocations builder.CountOperation(Token::Value::ADD, 1) .CountOperation(Token::Value::SUB, 1); @@ -220,18 +224,21 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .CompareNull(); // Emit conversion operator invocations. - builder.ConvertAccumulatorToNumber(reg, 1) - .ConvertAccumulatorToObject(reg) - .ConvertAccumulatorToName(reg); + builder.ToNumber(reg, 1).ToObject(reg).ToName(reg); // Emit GetSuperConstructor. builder.GetSuperConstructor(reg); + // Hole checks. + builder.ThrowReferenceErrorIfHole(name) + .ThrowSuperAlreadyCalledIfNotHole() + .ThrowSuperNotCalledIfHole(); + // Short jumps with Imm8 operands { BytecodeLabel start, after_jump1, after_jump2, after_jump3, after_jump4, after_jump5, after_jump6, after_jump7, after_jump8, after_jump9, - after_jump10, after_jump11; + after_jump10; builder.Bind(&start) .Jump(&after_jump1) .Bind(&after_jump1) @@ -243,23 +250,21 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .Bind(&after_jump4) .JumpIfNotUndefined(&after_jump5) .Bind(&after_jump5) - .JumpIfNotHole(&after_jump6) + .JumpIfJSReceiver(&after_jump6) .Bind(&after_jump6) - .JumpIfJSReceiver(&after_jump7) + .JumpIfTrue(ToBooleanMode::kConvertToBoolean, &after_jump7) .Bind(&after_jump7) - .JumpIfTrue(ToBooleanMode::kConvertToBoolean, &after_jump8) + .JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &after_jump8) .Bind(&after_jump8) - .JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &after_jump9) + .JumpIfFalse(ToBooleanMode::kConvertToBoolean, &after_jump9) .Bind(&after_jump9) - .JumpIfFalse(ToBooleanMode::kConvertToBoolean, &after_jump10) + .JumpIfFalse(ToBooleanMode::kAlreadyBoolean, &after_jump10) .Bind(&after_jump10) - .JumpIfFalse(ToBooleanMode::kAlreadyBoolean, &after_jump11) - .Bind(&after_jump11) .JumpLoop(&start, 0); } // Longer jumps with constant operands - BytecodeLabel end[11]; + BytecodeLabel end[10]; { BytecodeLabel after_jump; builder.Jump(&end[0]) @@ -272,9 +277,8 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .JumpIfNotNull(&end[6]) .JumpIfUndefined(&end[7]) .JumpIfNotUndefined(&end[8]) - .JumpIfNotHole(&end[9]) .LoadLiteral(ast_factory.prototype_string()) - .JumpIfJSReceiver(&end[10]); + .JumpIfJSReceiver(&end[9]); } // Emit Smi table switch bytecode. @@ -336,8 +340,12 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { // Emit wide load / store lookup slots. builder.LoadLookupSlot(wide_name, TypeofMode::NOT_INSIDE_TYPEOF) .LoadLookupSlot(wide_name, TypeofMode::INSIDE_TYPEOF) - .StoreLookupSlot(wide_name, LanguageMode::SLOPPY) - .StoreLookupSlot(wide_name, LanguageMode::STRICT); + .StoreLookupSlot(wide_name, LanguageMode::SLOPPY, + LookupHoistingMode::kNormal) + .StoreLookupSlot(wide_name, LanguageMode::SLOPPY, + LookupHoistingMode::kLegacySloppy) + .StoreLookupSlot(wide_name, LanguageMode::STRICT, + LookupHoistingMode::kNormal); // CreateClosureWide builder.CreateClosure(1000, 321, NOT_TENURED); @@ -357,7 +365,9 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { .StoreModuleVariable(1, 42); // Emit generator operations. - builder.SuspendGenerator(reg, SuspendFlags::kYield).ResumeGenerator(reg); + builder.SuspendGenerator(reg, reg_list) + .RestoreGeneratorState(reg) + .RestoreGeneratorRegisters(reg, reg_list); // Intrinsics handled by the interpreter. builder.CallRuntime(Runtime::kInlineIsArray, reg_list); @@ -370,6 +380,9 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { builder.Debugger(); } + // Emit block counter increments. + builder.IncBlockCounter(0); + // Bind labels for long jumps at the very end. for (size_t i = 0; i < arraysize(end); i++) { builder.Bind(&end[i]); @@ -408,9 +421,6 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { // Insert entry for illegal bytecode as this is never willingly emitted. scorecard[Bytecodes::ToByte(Bytecode::kIllegal)] = 1; - // Insert entry for nop bytecode as this often gets optimized out. - scorecard[Bytecodes::ToByte(Bytecode::kNop)] = 1; - if (!FLAG_type_profile) { // Bytecode for CollectTypeProfile is only emitted when // Type Information for DevTools is turned on. @@ -446,7 +456,7 @@ TEST_F(BytecodeArrayBuilderTest, FrameSizesLookGood) { builder.StoreAccumulatorInRegister(temp); // Ensure temporaries are used so not optimized away by the // register optimizer. - builder.ConvertAccumulatorToName(temp); + builder.ToName(temp); } builder.Return(); |