| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f86ca89 commit 611f423
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,7 +11,7 @@ | |||
| 11 | 11 | #define V8_MAJOR_VERSION 6 | |
| 12 | 12 | #define V8_MINOR_VERSION 8 | |
| 13 | 13 | #define V8_BUILD_NUMBER 275 | |
| 14 | - #define V8_PATCH_LEVEL 24 | ||
| 14 | + #define V8_PATCH_LEVEL 30 | ||
| 15 | 15 | ||
| 16 | 16 | // Use 1 for candidates and 0 otherwise. | |
| 17 | 17 | // (Boolean macro values are not supported by all preprocessors.) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -8816,13 +8816,14 @@ void CodeStubAssembler::EmitBigTypedArrayElementStore( | |||
| 8816 | 8816 | TNode<JSTypedArray> object, TNode<FixedTypedArrayBase> elements, | |
| 8817 | 8817 | TNode<IntPtrT> intptr_key, TNode<Object> value, TNode<Context> context, | |
| 8818 | 8818 | Label* opt_if_neutered) { | |
| 8819 | + TNode<BigInt> bigint_value = ToBigInt(context, value); | ||
| 8820 | + | ||
| 8819 | 8821 | if (opt_if_neutered != nullptr) { | |
| 8820 | - // Check if buffer has been neutered. | ||
| 8822 | + // Check if buffer has been neutered. Must happen after {ToBigInt}! | ||
| 8821 | 8823 | Node* buffer = LoadObjectField(object, JSArrayBufferView::kBufferOffset); | |
| 8822 | 8824 | GotoIf(IsDetachedBuffer(buffer), opt_if_neutered); | |
| 8823 | 8825 | } | |
| 8824 | 8826 | ||
| 8825 | - TNode<BigInt> bigint_value = ToBigInt(context, value); | ||
| 8826 | 8827 | TNode<RawPtrT> backing_store = LoadFixedTypedArrayBackingStore(elements); | |
| 8827 | 8828 | TNode<IntPtrT> offset = ElementOffsetFromIndex(intptr_key, BIGINT64_ELEMENTS, | |
| 8828 | 8829 | INTPTR_PARAMETERS, 0); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1053,11 +1053,13 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( | |||
| 1053 | 1053 | case kArchPrepareTailCall: | |
| 1054 | 1054 | AssemblePrepareTailCall(); | |
| 1055 | 1055 | break; | |
| 1056 | - case kArchComment: { | ||
| 1057 | - Address comment_string = i.InputExternalReference(0).address(); | ||
| 1058 | - __ RecordComment(reinterpret_cast<const char*>(comment_string)); | ||
| 1056 | + case kArchComment: | ||
| 1057 | + #ifdef V8_TARGET_ARCH_PPC64 | ||
| 1058 | + __ RecordComment(reinterpret_cast<const char*>(i.InputInt64(0))); | ||
| 1059 | + #else | ||
| 1060 | + __ RecordComment(reinterpret_cast<const char*>(i.InputInt32(0))); | ||
| 1061 | + #endif | ||
| 1059 | 1062 | break; | |
| 1060 | - } | ||
| 1061 | 1063 | case kArchCallCFunction: { | |
| 1062 | 1064 | int const num_parameters = MiscField::decode(instr->opcode()); | |
| 1063 | 1065 | if (instr->InputAt(0)->IsImmediate()) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1357,11 +1357,13 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( | |||
| 1357 | 1357 | ArchOpcode opcode = ArchOpcodeField::decode(instr->opcode()); | |
| 1358 | 1358 | ||
| 1359 | 1359 | switch (opcode) { | |
| 1360 | - case kArchComment: { | ||
| 1361 | - Address comment_string = i.InputExternalReference(0).address(); | ||
| 1362 | - __ RecordComment(reinterpret_cast<const char*>(comment_string)); | ||
| 1360 | + case kArchComment: | ||
| 1361 | + #ifdef V8_TARGET_ARCH_S390X | ||
| 1362 | + __ RecordComment(reinterpret_cast<const char*>(i.InputInt64(0))); | ||
| 1363 | + #else | ||
| 1364 | + __ RecordComment(reinterpret_cast<const char*>(i.InputInt32(0))); | ||
| 1365 | + #endif | ||
| 1363 | 1366 | break; | |
| 1364 | - } | ||
| 1365 | 1367 | case kArchCallCodeObject: { | |
| 1366 | 1368 | if (HasRegisterInput(instr, 0)) { | |
| 1367 | 1369 | __ AddP(ip, i.InputRegister(0), | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,22 @@ | |||
| 1 | + // Copyright 2018 the V8 project authors. All rights reserved. | ||
| 2 | + // Use of this source code is governed by a BSD-style license that can be | ||
| 3 | + // found in the LICENSE file. | ||
| 4 | + | ||
| 5 | + // Flags: --allow-natives-syntax --expose-gc | ||
| 6 | + | ||
| 7 | + for (var i = 0; i < 3; i++) { | ||
| 8 | + var array = new BigInt64Array(200); | ||
| 9 | + | ||
| 10 | + function evil_callback() { | ||
| 11 | + %ArrayBufferNeuter(array.buffer); | ||
| 12 | + gc(); | ||
| 13 | + return 1094795585n; | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + var evil_object = {valueOf: evil_callback}; | ||
| 17 | + var root; | ||
| 18 | + try { | ||
| 19 | + root = BigInt64Array.of.call(function() { return array }, evil_object); | ||
| 20 | + } catch(e) {} | ||
| 21 | + gc(); | ||
| 22 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments