mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
deps: V8: revert rapidhash commits
This reverts the following V8 commits: Revert "[string] Fix rapidhash on big endian" This reverts commit 3c6749f39dcaf071f7140d501eb6c507ba7d762e. Revert "Fix build with older gcc and clang compilers" This reverts commit 63cb5b3519339bb90a50f5d2150c527d1a6ab96f. Revert "[string] Fix overflow case of TryParseArrayIndex" This reverts commit f99c2e013acce0c54611c0a67bcb6212577693d4. Revert "[string] Optimize and refactor index hashing" This reverts commit dcbc9e7460732aa3cf836cc3d0d9b53406786a1e. Revert "[string] Use rapidhash for string hashing" This reverts commit d329f49df91ff1774b4190da11cbe63cb322eded. PR-URL: https://github.com/nodejs-private/node-private/pull/713 Refs: https://hackerone.com/reports/3131758 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> CVE-ID: CVE-2025-27209
This commit is contained in:
parent
ed2b509327
commit
c33223f1a5
63 changed files with 588 additions and 1210 deletions
1
deps/v8/.gitignore
vendored
1
deps/v8/.gitignore
vendored
|
@ -89,7 +89,6 @@
|
|||
/third_party/jsoncpp/source
|
||||
!/third_party/llvm-libc
|
||||
/third_party/llvm-libc/src
|
||||
!/third_party/rapidhash-v8
|
||||
!/third_party/re2
|
||||
/third_party/re2/src
|
||||
!/third_party/siphash
|
||||
|
|
2
deps/v8/BUILD.bazel
vendored
2
deps/v8/BUILD.bazel
vendored
|
@ -2484,7 +2484,6 @@ filegroup(
|
|||
"src/strings/string-builder-inl.h",
|
||||
"src/strings/string-case.cc",
|
||||
"src/strings/string-case.h",
|
||||
"src/strings/string-hasher.cc",
|
||||
"src/strings/string-hasher.h",
|
||||
"src/strings/string-hasher-inl.h",
|
||||
"src/strings/string-search.h",
|
||||
|
@ -2561,7 +2560,6 @@ filegroup(
|
|||
"src/zone/zone-segment.h",
|
||||
"src/zone/zone-type-traits.h",
|
||||
"src/zone/zone-utils.h",
|
||||
"third_party/rapidhash-v8/rapidhash.h",
|
||||
"third_party/siphash/halfsiphash.cc",
|
||||
"third_party/siphash/halfsiphash.h",
|
||||
"third_party/utf8-decoder/utf8-decoder.h",
|
||||
|
|
2
deps/v8/BUILD.gn
vendored
2
deps/v8/BUILD.gn
vendored
|
@ -4280,7 +4280,6 @@ v8_header_set("v8_internal_headers") {
|
|||
"src/tasks/operations-barrier.h",
|
||||
"src/tasks/task-utils.h",
|
||||
"src/temporal/temporal-parser.h",
|
||||
"src/third_party/rapidhash-v8/rapidhash.h",
|
||||
"src/torque/runtime-macro-shims.h",
|
||||
"src/tracing/trace-event-no-perfetto.h",
|
||||
"src/tracing/trace-event.h",
|
||||
|
@ -5781,7 +5780,6 @@ v8_source_set("v8_base_without_compiler") {
|
|||
"src/strings/char-predicates.cc",
|
||||
"src/strings/string-builder.cc",
|
||||
"src/strings/string-case.cc",
|
||||
"src/strings/string-hasher.cc",
|
||||
"src/strings/string-stream.cc",
|
||||
"src/strings/unicode-decoder.cc",
|
||||
"src/strings/unicode.cc",
|
||||
|
|
3
deps/v8/src/DEPS
vendored
3
deps/v8/src/DEPS
vendored
|
@ -129,7 +129,4 @@ specific_include_rules = {
|
|||
"snapshot\.cc": [
|
||||
"+src/heap/read-only-promotion.h",
|
||||
],
|
||||
"string-hasher-inl\.h": [
|
||||
"+third_party/rapidhash-v8/rapidhash.h",
|
||||
]
|
||||
}
|
||||
|
|
5
deps/v8/src/objects/name.h
vendored
5
deps/v8/src/objects/name.h
vendored
|
@ -8,10 +8,8 @@
|
|||
#include <atomic>
|
||||
|
||||
#include "src/base/bit-field.h"
|
||||
#include "src/common/globals.h"
|
||||
#include "src/objects/objects.h"
|
||||
#include "src/objects/primitive-heap-object.h"
|
||||
#include "src/utils/utils.h"
|
||||
#include "torque-generated/bit-fields.h"
|
||||
|
||||
// Has to be the last include (doesn't have include guards):
|
||||
|
@ -149,12 +147,9 @@ V8_OBJECT class Name : public PrimitiveHeapObject {
|
|||
// Array index strings this short can keep their index in the hash field.
|
||||
static const int kMaxCachedArrayIndexLength = 7;
|
||||
|
||||
static const uint32_t kMaxArrayIndex = kMaxUInt32 - 1;
|
||||
// Maximum number of characters to consider when trying to convert a string
|
||||
// value into an array index.
|
||||
static const int kMaxArrayIndexSize = 10;
|
||||
static_assert(TenToThe(kMaxArrayIndexSize) >= kMaxArrayIndex);
|
||||
static_assert(TenToThe(kMaxArrayIndexSize - 1) < kMaxArrayIndex);
|
||||
// Maximum number of characters in a string that can possibly be an
|
||||
// "integer index" in the spec sense, i.e. a canonical representation of a
|
||||
// number in the range up to MAX_SAFE_INTEGER. We parse these into a size_t,
|
||||
|
|
300
deps/v8/src/strings/string-hasher-inl.h
vendored
300
deps/v8/src/strings/string-hasher-inl.h
vendored
|
@ -6,16 +6,6 @@
|
|||
#define V8_STRINGS_STRING_HASHER_INL_H_
|
||||
|
||||
#include "src/strings/string-hasher.h"
|
||||
// Include the non-inl header before the rest of the headers.
|
||||
|
||||
#include "src/common/globals.h"
|
||||
#include "src/utils/utils.h"
|
||||
|
||||
#ifdef __SSE2__
|
||||
#include <emmintrin.h>
|
||||
#elif defined(__ARM_NEON__)
|
||||
#include <arm_neon.h>
|
||||
#endif
|
||||
|
||||
// Comment inserted to prevent header reordering.
|
||||
#include <type_traits>
|
||||
|
@ -24,55 +14,19 @@
|
|||
#include "src/objects/string-inl.h"
|
||||
#include "src/strings/char-predicates-inl.h"
|
||||
#include "src/utils/utils-inl.h"
|
||||
#include "third_party/rapidhash-v8/rapidhash.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
namespace detail {
|
||||
V8_EXPORT_PRIVATE uint64_t HashConvertingTo8Bit(const uint16_t* chars,
|
||||
uint32_t length, uint64_t seed);
|
||||
|
||||
template <typename T>
|
||||
uint32_t ConvertRawHashToUsableHash(T raw_hash) {
|
||||
namespace {
|
||||
// static
|
||||
uint32_t ConvertRawHashToUsableHash(uint32_t raw_hash) {
|
||||
// Limit to the supported bits.
|
||||
const int32_t hash = static_cast<int32_t>(raw_hash & String::HashBits::kMax);
|
||||
// Ensure that the hash is kZeroHash, if the computed value is 0.
|
||||
return hash == 0 ? StringHasher::kZeroHash : hash;
|
||||
}
|
||||
|
||||
V8_INLINE bool IsOnly8Bit(const uint16_t* chars, unsigned len) {
|
||||
// TODO(leszeks): This could be SIMD for efficiency on large strings, if we
|
||||
// need it.
|
||||
for (unsigned i = 0; i < len; ++i) {
|
||||
if (chars[i] > 255) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
V8_INLINE uint64_t GetRapidHash(const uint8_t* chars, uint32_t length,
|
||||
uint64_t seed) {
|
||||
return rapidhash(chars, length, seed);
|
||||
}
|
||||
|
||||
V8_INLINE uint64_t GetRapidHash(const uint16_t* chars, uint32_t length,
|
||||
uint64_t seed) {
|
||||
// For 2-byte strings we need to preserve the same hash for strings in just
|
||||
// the latin-1 range.
|
||||
if (V8_UNLIKELY(IsOnly8Bit(chars, length))) {
|
||||
return detail::HashConvertingTo8Bit(chars, length, seed);
|
||||
}
|
||||
return rapidhash(reinterpret_cast<const uint8_t*>(chars), 2 * length, seed);
|
||||
}
|
||||
|
||||
template <typename uchar>
|
||||
V8_INLINE uint32_t GetUsableRapidHash(const uchar* chars, uint32_t length,
|
||||
uint64_t seed) {
|
||||
return ConvertRawHashToUsableHash(GetRapidHash(chars, length, seed));
|
||||
}
|
||||
} // namespace detail
|
||||
} // namespace
|
||||
|
||||
void RunningStringHasher::AddCharacter(uint16_t c) {
|
||||
running_hash_ += c;
|
||||
|
@ -84,7 +38,7 @@ uint32_t RunningStringHasher::Finalize() {
|
|||
running_hash_ += (running_hash_ << 3);
|
||||
running_hash_ ^= (running_hash_ >> 11);
|
||||
running_hash_ += (running_hash_ << 15);
|
||||
return detail::ConvertRawHashToUsableHash(running_hash_);
|
||||
return ConvertRawHashToUsableHash(running_hash_);
|
||||
}
|
||||
|
||||
uint32_t StringHasher::GetTrivialHash(uint32_t length) {
|
||||
|
@ -113,112 +67,6 @@ uint32_t StringHasher::MakeArrayIndexHash(uint32_t value, uint32_t length) {
|
|||
return value;
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
||||
enum IndexParseResult { kSuccess, kNonIndex, kOverflow };
|
||||
|
||||
// The array index type depends on the architecture, so that the multiplication
|
||||
// in TryParseArrayIndex stays fast.
|
||||
#if V8_HOST_ARCH_64_BIT
|
||||
using ArrayIndexT = uint64_t;
|
||||
#else
|
||||
using ArrayIndexT = uint32_t;
|
||||
#endif
|
||||
|
||||
template <typename uchar>
|
||||
V8_INLINE IndexParseResult TryParseArrayIndex(const uchar* chars,
|
||||
uint32_t length, uint32_t& i,
|
||||
ArrayIndexT& index) {
|
||||
DCHECK_GT(length, 0);
|
||||
DCHECK_LE(length, String::kMaxIntegerIndexSize);
|
||||
|
||||
// The leading character can only be a zero for the string "0"; otherwise this
|
||||
// isn't a valid index string.
|
||||
index = chars[0] - '0';
|
||||
i = 1;
|
||||
if (index > 9) return kNonIndex;
|
||||
if (index == 0) {
|
||||
if (length > 1) return kNonIndex;
|
||||
DCHECK_EQ(length, 1);
|
||||
return kSuccess;
|
||||
}
|
||||
|
||||
if (length > String::kMaxArrayIndexSize) return kOverflow;
|
||||
|
||||
// TODO(leszeks): Use SIMD for this loop.
|
||||
for (; i < length; i++) {
|
||||
uchar c = chars[i];
|
||||
uint32_t val = c - '0';
|
||||
if (val > 9) return kNonIndex;
|
||||
index = (10 * index) + val;
|
||||
}
|
||||
if constexpr (sizeof(index) == sizeof(uint64_t)) {
|
||||
// If we have a large type for index, we'll never overflow it, so we can
|
||||
// have a simple comparison for array index overflow.
|
||||
if (index > String::kMaxArrayIndex) {
|
||||
return kOverflow;
|
||||
}
|
||||
} else {
|
||||
DCHECK(sizeof(index) == sizeof(uint32_t));
|
||||
// If index is a 32-bit int, we have to get a bit creative with the overflow
|
||||
// check.
|
||||
if (V8_UNLIKELY(length == String::kMaxArrayIndexSize)) {
|
||||
// If length is String::kMaxArrayIndexSize, and we know there is no zero
|
||||
// prefix, the minimum valid value is 1 followed by length - 1 zeros. If
|
||||
// our value is smaller than this, then we overflowed.
|
||||
//
|
||||
// Additionally, String::kMaxArrayIndex is UInt32Max - 1, so we can fold
|
||||
// in a check that index < UInt32Max by adding 1 to both sides, making
|
||||
// index = UInt32Max overflows, and only then checking for overflow.
|
||||
constexpr uint32_t kMinValidValue =
|
||||
TenToThe(String::kMaxArrayIndexSize - 1);
|
||||
if (index + 1 < kMinValidValue + 1) {
|
||||
// We won't try an integer index if there is overflow, so just return
|
||||
// non-index.
|
||||
DCHECK(String::kMaxArrayIndexSize == String::kMaxIntegerIndexSize);
|
||||
return kNonIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
DCHECK_LT(index, TenToThe(length));
|
||||
DCHECK_GE(index, TenToThe(length - 1));
|
||||
return kSuccess;
|
||||
}
|
||||
|
||||
// The following function wouldn't do anything on 32-bit platforms, because
|
||||
// kMaxArrayIndexSize == kMaxIntegerIndexSize there.
|
||||
#if V8_HOST_ARCH_64_BIT
|
||||
template <typename uchar>
|
||||
V8_INLINE IndexParseResult TryParseIntegerIndex(const uchar* chars,
|
||||
uint32_t length, uint32_t i,
|
||||
ArrayIndexT index) {
|
||||
DCHECK_GT(length, 0);
|
||||
DCHECK_LE(length, String::kMaxIntegerIndexSize);
|
||||
DCHECK_GT(i, 0);
|
||||
DCHECK_GT(index, 0);
|
||||
DCHECK_LT(index, kMaxSafeIntegerUint64);
|
||||
|
||||
for (; i < length; i++) {
|
||||
// We should never be anywhere near overflowing, so we can just do
|
||||
// one range check at the end.
|
||||
static_assert(kMaxSafeIntegerUint64 < (kMaxUInt64 / 100));
|
||||
DCHECK_LT(index, kMaxUInt64 / 100);
|
||||
|
||||
uchar c = chars[i];
|
||||
uint32_t val = c - '0';
|
||||
if (val > 9) return kNonIndex;
|
||||
index = (10 * index) + val;
|
||||
}
|
||||
if (index > kMaxSafeIntegerUint64) return kOverflow;
|
||||
|
||||
return kSuccess;
|
||||
}
|
||||
#else
|
||||
static_assert(String::kMaxArrayIndexSize == String::kMaxIntegerIndexSize);
|
||||
#endif
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <typename char_t>
|
||||
uint32_t StringHasher::HashSequentialString(const char_t* chars_raw,
|
||||
uint32_t length, uint64_t seed) {
|
||||
|
@ -228,54 +76,95 @@ uint32_t StringHasher::HashSequentialString(const char_t* chars_raw,
|
|||
const uchar* chars = reinterpret_cast<const uchar*>(chars_raw);
|
||||
DCHECK_IMPLIES(length > 0, chars != nullptr);
|
||||
if (length >= 1) {
|
||||
if (length <= String::kMaxIntegerIndexSize) {
|
||||
// Possible array or integer index; try to compute the array index hash.
|
||||
static_assert(String::kMaxArrayIndexSize <= String::kMaxIntegerIndexSize);
|
||||
if (length <= String::kMaxIntegerIndexSize && IsDecimalDigit(chars[0]) &&
|
||||
(length == 1 || chars[0] != '0')) {
|
||||
uint32_t index = chars[0] - '0';
|
||||
uint32_t i = 1;
|
||||
if (length <= String::kMaxArrayIndexSize) {
|
||||
// Possible array index; try to compute the array index hash.
|
||||
static_assert(String::kMaxArrayIndexSize <=
|
||||
String::kMaxIntegerIndexSize);
|
||||
|
||||
detail::ArrayIndexT index;
|
||||
uint32_t i;
|
||||
switch (detail::TryParseArrayIndex(chars, length, i, index)) {
|
||||
case detail::kSuccess:
|
||||
DCHECK_LE(index, String::kMaxArrayIndex);
|
||||
return MakeArrayIndexHash(static_cast<uint32_t>(index), length);
|
||||
case detail::kNonIndex:
|
||||
// A non-index result from TryParseArrayIndex means we don't need to
|
||||
// check for integer indices.
|
||||
break;
|
||||
case detail::kOverflow: {
|
||||
#if V8_HOST_ARCH_64_BIT
|
||||
// On 64-bit, we might have a valid integer index even if the value
|
||||
// overflowed an array index.
|
||||
static_assert(String::kMaxArrayIndexSize <
|
||||
String::kMaxIntegerIndexSize);
|
||||
switch (detail::TryParseIntegerIndex(chars, length, i, index)) {
|
||||
case detail::kSuccess: {
|
||||
uint32_t hash = String::CreateHashFieldValue(
|
||||
detail::GetUsableRapidHash(chars, length, seed),
|
||||
String::HashFieldType::kIntegerIndex);
|
||||
if (Name::ContainsCachedArrayIndex(hash)) {
|
||||
// The hash accidentally looks like a cached index. Fix that by
|
||||
// setting a bit that looks like a longer-than-cacheable string
|
||||
// length.
|
||||
hash |= (String::kMaxCachedArrayIndexLength + 1)
|
||||
<< String::ArrayIndexLengthBits::kShift;
|
||||
}
|
||||
DCHECK(!Name::ContainsCachedArrayIndex(hash));
|
||||
return hash;
|
||||
}
|
||||
case detail::kNonIndex:
|
||||
case detail::kOverflow:
|
||||
break;
|
||||
// We can safely add digits until `String::kMaxArrayIndexSize - 1`
|
||||
// without needing an overflow check -- if the whole string is
|
||||
// smaller than this, we can skip the overflow check entirely.
|
||||
bool needs_overflow_check = length == String::kMaxArrayIndexSize;
|
||||
|
||||
uint32_t safe_length = needs_overflow_check ? length - 1 : length;
|
||||
for (; i < safe_length; i++) {
|
||||
char_t c = chars[i];
|
||||
if (!IsDecimalDigit(c)) {
|
||||
// If there is a non-decimal digit, we can skip doing anything
|
||||
// else and emit a non-index hash.
|
||||
goto non_index_hash;
|
||||
}
|
||||
#else
|
||||
static_assert(String::kMaxArrayIndexSize ==
|
||||
String::kMaxIntegerIndexSize);
|
||||
#endif
|
||||
index = (10 * index) + (c - '0');
|
||||
}
|
||||
DCHECK_EQ(i, safe_length);
|
||||
// If we didn't need to check for an overflowing value, we're
|
||||
// done.
|
||||
if (!needs_overflow_check) {
|
||||
DCHECK_EQ(i, length);
|
||||
return MakeArrayIndexHash(index, length);
|
||||
}
|
||||
// Otherwise, the last character needs to be checked for both being
|
||||
// digit, and the result being in bounds of the maximum array index.
|
||||
DCHECK_EQ(i, length - 1);
|
||||
char_t c = chars[i];
|
||||
if (!IsDecimalDigit(c)) {
|
||||
// If there is a non-decimal digit, we can skip doing anything
|
||||
// else and emit a non-index hash.
|
||||
goto non_index_hash;
|
||||
}
|
||||
if (TryAddArrayIndexChar(&index, c)) {
|
||||
return MakeArrayIndexHash(index, length);
|
||||
}
|
||||
// If the range check fails, this falls through into the integer index
|
||||
// check.
|
||||
}
|
||||
|
||||
// The following block wouldn't do anything on 32-bit platforms,
|
||||
// because kMaxArrayIndexSize == kMaxIntegerIndexSize there, and
|
||||
// if we wanted to compile it everywhere, then {index_big} would
|
||||
// have to be a {size_t}, which the Mac compiler doesn't like to
|
||||
// implicitly cast to uint64_t for the {TryAddIndexChar} call.
|
||||
#if V8_HOST_ARCH_64_BIT
|
||||
// No "else" here: if the block above was entered and fell through,
|
||||
// we have something that's not an array index but might still have
|
||||
// been all digits and therefore a valid in-range integer index.
|
||||
// Perform a regular hash computation, and additionally check if
|
||||
// there are non-digit characters.
|
||||
String::HashFieldType type = String::HashFieldType::kIntegerIndex;
|
||||
uint64_t index_big = index;
|
||||
RunningStringHasher hasher(static_cast<uint32_t>(seed));
|
||||
for (uint32_t j = 0; j < i; j++) {
|
||||
hasher.AddCharacter(chars[j]);
|
||||
}
|
||||
for (; i < length; i++) {
|
||||
char_t c = chars[i];
|
||||
hasher.AddCharacter(c);
|
||||
// TODO(leszeks): Split this into a safe length iteration.
|
||||
if (!IsDecimalDigit(c) || !TryAddIntegerIndexChar(&index_big, c)) {
|
||||
for (i = i + 1; i < length; i++) {
|
||||
hasher.AddCharacter(chars[i]);
|
||||
}
|
||||
type = String::HashFieldType::kHash;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// If the we failed to compute an index hash, this falls through into the
|
||||
// non-index hash case.
|
||||
DCHECK_EQ(i, length);
|
||||
uint32_t hash = String::CreateHashFieldValue(hasher.Finalize(), type);
|
||||
if (Name::ContainsCachedArrayIndex(hash)) {
|
||||
DCHECK_EQ(type, String::HashFieldType::kIntegerIndex);
|
||||
// The hash accidentally looks like a cached index. Fix that by
|
||||
// setting a bit that looks like a longer-than-cacheable string
|
||||
// length.
|
||||
hash |= (String::kMaxCachedArrayIndexLength + 1)
|
||||
<< String::ArrayIndexLengthBits::kShift;
|
||||
}
|
||||
DCHECK(!Name::ContainsCachedArrayIndex(hash));
|
||||
return hash;
|
||||
#endif
|
||||
} else if (length > String::kMaxHashCalcLength) {
|
||||
// We should never go down this path if we might have an index value.
|
||||
static_assert(String::kMaxHashCalcLength > String::kMaxIntegerIndexSize);
|
||||
|
@ -284,10 +173,15 @@ uint32_t StringHasher::HashSequentialString(const char_t* chars_raw,
|
|||
}
|
||||
}
|
||||
|
||||
non_index_hash:
|
||||
// Non-index hash.
|
||||
return String::CreateHashFieldValue(
|
||||
detail::GetUsableRapidHash(chars, length, seed),
|
||||
String::HashFieldType::kHash);
|
||||
RunningStringHasher hasher(static_cast<uint32_t>(seed));
|
||||
const uchar* end = &chars[length];
|
||||
while (chars != end) {
|
||||
hasher.AddCharacter(*chars++);
|
||||
}
|
||||
return String::CreateHashFieldValue(hasher.Finalize(),
|
||||
String::HashFieldType::kHash);
|
||||
}
|
||||
|
||||
std::size_t SeededStringHasher::operator()(const char* name) const {
|
||||
|
|
78
deps/v8/src/strings/string-hasher.cc
vendored
78
deps/v8/src/strings/string-hasher.cc
vendored
|
@ -1,78 +0,0 @@
|
|||
|
||||
// Copyright 2024 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/strings/string-hasher.h"
|
||||
|
||||
#include "src/strings/string-hasher-inl.h"
|
||||
|
||||
namespace v8::internal {
|
||||
|
||||
struct ConvertTo8BitHashReader {
|
||||
static constexpr unsigned kCompressionFactor = 2;
|
||||
static constexpr unsigned kExpansionFactor = 1;
|
||||
|
||||
V8_INLINE static uint64_t Read64(const uint8_t* ptr) {
|
||||
const uint16_t* p = reinterpret_cast<const uint16_t*>(ptr);
|
||||
DCHECK_LE(p[0], 0xff);
|
||||
DCHECK_LE(p[1], 0xff);
|
||||
DCHECK_LE(p[2], 0xff);
|
||||
DCHECK_LE(p[3], 0xff);
|
||||
DCHECK_LE(p[4], 0xff);
|
||||
DCHECK_LE(p[5], 0xff);
|
||||
DCHECK_LE(p[6], 0xff);
|
||||
DCHECK_LE(p[7], 0xff);
|
||||
#ifdef __SSE2__
|
||||
__m128i x = _mm_loadu_si128(reinterpret_cast<const __m128i*>(p));
|
||||
return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
|
||||
#elif defined(__ARM_NEON__)
|
||||
int16x8_t x;
|
||||
memcpy(&x, p, sizeof(x));
|
||||
return vget_lane_u64(vreinterpret_u64_u8(vmovn_u16(x)), 0);
|
||||
#else
|
||||
return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) |
|
||||
(uint64_t{p[3]} << 24) | (uint64_t{p[4]} << 32) |
|
||||
(uint64_t{p[5]} << 40) | (uint64_t{p[6]} << 48) |
|
||||
(uint64_t{p[7]} << 56);
|
||||
#endif
|
||||
}
|
||||
|
||||
V8_INLINE static uint64_t Read32(const uint8_t* ptr) {
|
||||
const uint16_t* p = reinterpret_cast<const uint16_t*>(ptr);
|
||||
DCHECK_LE(p[0], 0xff);
|
||||
DCHECK_LE(p[1], 0xff);
|
||||
DCHECK_LE(p[2], 0xff);
|
||||
DCHECK_LE(p[3], 0xff);
|
||||
#ifdef __SSE2__
|
||||
__m128i x = _mm_loadu_si64(reinterpret_cast<const __m128i*>(p));
|
||||
return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
|
||||
#elif defined(__ARM_NEON__)
|
||||
int8x8_t x;
|
||||
memcpy(&x, p, sizeof(x));
|
||||
int16x8_t x_wide = vcombine_u64(x, x);
|
||||
return vget_lane_u32(vreinterpret_u32_u8(vmovn_u16(x_wide)), 0);
|
||||
#else
|
||||
return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) |
|
||||
(uint64_t{p[3]} << 24);
|
||||
#endif
|
||||
}
|
||||
|
||||
V8_INLINE static uint64_t ReadSmall(const uint8_t* ptr, size_t k) {
|
||||
const uint16_t* p = reinterpret_cast<const uint16_t*>(ptr);
|
||||
DCHECK_LE(p[0], 0xff);
|
||||
DCHECK_LE(p[k >> 1], 0xff);
|
||||
DCHECK_LE(p[k - 1], 0xff);
|
||||
return (uint64_t{p[0]} << 56) | (uint64_t{p[k >> 1]} << 32) | p[k - 1];
|
||||
}
|
||||
};
|
||||
|
||||
namespace detail {
|
||||
uint64_t HashConvertingTo8Bit(const uint16_t* chars, uint32_t length,
|
||||
uint64_t seed) {
|
||||
return rapidhash<ConvertTo8BitHashReader>(
|
||||
reinterpret_cast<const uint8_t*>(chars), length, seed);
|
||||
}
|
||||
} // namespace detail
|
||||
|
||||
} // namespace v8::internal
|
1
deps/v8/src/utils/utils-inl.h
vendored
1
deps/v8/src/utils/utils-inl.h
vendored
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "include/v8-platform.h"
|
||||
#include "src/base/platform/time.h"
|
||||
#include "src/base/strings.h"
|
||||
#include "src/init/v8.h"
|
||||
#include "src/strings/char-predicates-inl.h"
|
||||
|
||||
|
|
12
deps/v8/src/utils/utils.h
vendored
12
deps/v8/src/utils/utils.h
vendored
|
@ -541,15 +541,13 @@ inline int CompareChars(const lchar* lhs, const rchar* rhs, size_t chars) {
|
|||
}
|
||||
|
||||
// Calculate 10^exponent.
|
||||
inline constexpr uint64_t TenToThe(uint32_t exponent) {
|
||||
DCHECK_LE(exponent, 19);
|
||||
DCHECK_GE(exponent, 0);
|
||||
uint64_t answer = 1;
|
||||
for (uint32_t i = 0; i < exponent; i++) answer *= 10;
|
||||
inline int TenToThe(int exponent) {
|
||||
DCHECK_LE(exponent, 9);
|
||||
DCHECK_GE(exponent, 1);
|
||||
int answer = 10;
|
||||
for (int i = 1; i < exponent; i++) answer *= 10;
|
||||
return answer;
|
||||
}
|
||||
static_assert(TenToThe(19) < kMaxUInt64);
|
||||
static_assert(TenToThe(19) > kMaxUInt64 / 10);
|
||||
|
||||
// Bit field extraction.
|
||||
inline uint32_t unsigned_bitextract_32(int msb, int lsb, uint32_t x) {
|
||||
|
|
|
@ -6,7 +6,7 @@ Building wasm module with sentinel 1.
|
|||
Running fib with increasing input until it shows up in the profile.
|
||||
Found expected functions in profile.
|
||||
Wasm script id is set.
|
||||
Wasm position: wasm://wasm/ed5627ce@0:47
|
||||
Wasm position: wasm://wasm/6b211e7e@0:47
|
||||
|
||||
Running test: testEnableProfilerLate
|
||||
Compiling wasm.
|
||||
|
@ -14,7 +14,7 @@ Building wasm module with sentinel 2.
|
|||
Running fib with increasing input until it shows up in the profile.
|
||||
Found expected functions in profile.
|
||||
Wasm script id is set.
|
||||
Wasm position: wasm://wasm/def0f3f2@0:47
|
||||
Wasm position: wasm://wasm/d6029ed6@0:47
|
||||
|
||||
Running test: testEnableProfilerAfterDebugger
|
||||
Compiling wasm.
|
||||
|
@ -22,7 +22,7 @@ Building wasm module with sentinel 3.
|
|||
Running fib with increasing input until it shows up in the profile.
|
||||
Found expected functions in profile.
|
||||
Wasm script id is set.
|
||||
Wasm position: wasm://wasm/e950bb4a@0:47
|
||||
Wasm position: wasm://wasm/6df1c11a@0:47
|
||||
|
||||
Running test: testEnableProfilerBeforeDebugger
|
||||
Compiling wasm.
|
||||
|
@ -30,7 +30,7 @@ Building wasm module with sentinel 4.
|
|||
Running fib with increasing input until it shows up in the profile.
|
||||
Found expected functions in profile.
|
||||
Wasm script id is set.
|
||||
Wasm position: wasm://wasm/d8d4f97a@0:47
|
||||
Wasm position: wasm://wasm/07da49be@0:47
|
||||
|
||||
Running test: testRunningCodeInDifferentIsolate
|
||||
Building wasm module with sentinel 5.
|
||||
|
@ -43,5 +43,5 @@ Running in the debugged isolate.
|
|||
Running fib with increasing input until it shows up in the profile.
|
||||
Found expected functions in profile.
|
||||
Wasm script id is set.
|
||||
Wasm position: wasm://wasm/8ffda0ce@0:47
|
||||
Wasm position: wasm://wasm/ba5e5b4e@0:47
|
||||
Disabling profiler.
|
||||
|
|
|
@ -5,7 +5,7 @@ Instantiating.
|
|||
Waiting for wasm script (ignoring first non-wasm script).
|
||||
Setting breakpoint.
|
||||
Calling func.
|
||||
Script wasm://wasm/aa8b4c12 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8c388106 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
func returned.
|
||||
Restarting debugger.
|
||||
Calling func.
|
||||
|
|
|
@ -3,7 +3,7 @@ Test conditional breakpoints in wasm.
|
|||
Running test: test
|
||||
Instantiating.
|
||||
Waiting for wasm script.
|
||||
Got wasm script: wasm://wasm/c5d9f10e
|
||||
Got wasm script: wasm://wasm/f00dbc56
|
||||
Setting breakpoint at offset 34, condition "false"
|
||||
{
|
||||
id : <messageId>
|
||||
|
@ -41,26 +41,26 @@ Setting breakpoint at offset 46, condition "$var0.value==3"
|
|||
}
|
||||
}
|
||||
Calling fib(5)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 5 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 4 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 3 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 46: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/f00dbc56 byte offset 46: Wasm opcode 0x10 (kExprCallFunction)
|
||||
$var0: 3 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 2 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 1 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 2 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 3 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 46: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/f00dbc56 byte offset 46: Wasm opcode 0x10 (kExprCallFunction)
|
||||
$var0: 3 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 2 (i32)
|
||||
Script wasm://wasm/c5d9f10e byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
Script wasm://wasm/f00dbc56 byte offset 41: Wasm opcode 0x0d (kExprBrIf)
|
||||
$var0: 1 (i32)
|
||||
fib returned!
|
||||
|
|
|
@ -3,8 +3,8 @@ Tests debug command for wasm
|
|||
Running test: test
|
||||
Waiting for wasm scripts to be parsed.
|
||||
Ignoring script with url v8://test/instantiate
|
||||
Got wasm script: wasm://wasm/fd1bd682
|
||||
Got wasm script: wasm://wasm/7d022e0e
|
||||
paused No 1
|
||||
Script wasm://wasm/fd1bd682 byte offset 35: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/7d022e0e byte offset 35: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume
|
||||
exports.main returned!
|
||||
|
|
|
@ -13,7 +13,7 @@ Setting breakpoint
|
|||
scriptId : <scriptId>
|
||||
}
|
||||
Paused:
|
||||
Script wasm://wasm/9b78fa1a byte offset 316: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/4ed17ea6 byte offset 316: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $main (0:316):
|
||||
- scope (wasm-expression-stack):
|
||||
|
|
|
@ -3,10 +3,10 @@ Tests GC object inspection.
|
|||
Running test: test
|
||||
Instantiating.
|
||||
Waiting for wasm script (ignoring first non-wasm script).
|
||||
Setting breakpoint at offset 103 on script wasm://wasm/27d1b772
|
||||
Setting breakpoint at offset 103 on script wasm://wasm/b3f93902
|
||||
Calling main()
|
||||
Paused:
|
||||
Script wasm://wasm/27d1b772 byte offset 103: Wasm opcode 0x1a (kExprDrop)
|
||||
Script wasm://wasm/b3f93902 byte offset 103: Wasm opcode 0x1a (kExprDrop)
|
||||
Scope:
|
||||
at $main (0:103):
|
||||
- scope (wasm-expression-stack):
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
Tests GC within DebugBreak
|
||||
|
||||
Running test: test
|
||||
Script wasm://wasm/d14f671e byte offset 51: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/38e28046 byte offset 51: Wasm opcode 0x20 (kExprLocalGet)
|
||||
GC triggered
|
||||
Debugger.resume
|
||||
log: Hello World (v8://test/instantiate:11:36)
|
||||
at bar (v8://test/instantiate:11:36)
|
||||
at $wasm_A (wasm://wasm/d14f671e:1:54)
|
||||
at $wasm_A (wasm://wasm/38e28046:1:54)
|
||||
at test (test.js:4:20)
|
||||
at (anonymous function) (:1:1)
|
||||
exports.main returned!
|
||||
|
|
|
@ -22,7 +22,7 @@ Setting breakpoint
|
|||
scriptId : <scriptId>
|
||||
}
|
||||
Paused:
|
||||
Script wasm://wasm/493c7026 byte offset 72: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/f0d3cad2 byte offset 72: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $main (0:72):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -39,7 +39,7 @@ at (anonymous) (0:18):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/b9d0fb8a byte offset 108: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/699aa072 byte offset 108: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $main (0:108):
|
||||
- scope (wasm-expression-stack):
|
||||
|
|
|
@ -3,7 +3,7 @@ Tests breakable locations in wasm
|
|||
Running test: test
|
||||
Running testFunction...
|
||||
Script nr 0 parsed. URL: v8://test/instantiate
|
||||
Script nr 1 parsed. URL: wasm://wasm/f3bba79a
|
||||
Script nr 1 parsed. URL: wasm://wasm/354ada0e
|
||||
This is a wasm script (nr 0).
|
||||
Querying breakable locations for all wasm scripts now...
|
||||
Requesting all breakable locations in wasm script 0
|
||||
|
@ -32,46 +32,46 @@ Requesting breakable locations in offsets [50,60)
|
|||
[3] 0:57 || byte=11
|
||||
[4] 0:58 || byte=11
|
||||
Setting a breakpoint on each breakable location...
|
||||
Setting at wasm://wasm/f3bba79a:0:40
|
||||
Setting at wasm://wasm/354ada0e:0:40
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:41
|
||||
Setting at wasm://wasm/354ada0e:0:41
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:43
|
||||
Setting at wasm://wasm/354ada0e:0:43
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:45
|
||||
Setting at wasm://wasm/354ada0e:0:45
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:48
|
||||
Setting at wasm://wasm/354ada0e:0:48
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:50
|
||||
Setting at wasm://wasm/354ada0e:0:50
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:54
|
||||
Setting at wasm://wasm/354ada0e:0:54
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:56
|
||||
Setting at wasm://wasm/354ada0e:0:56
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:57
|
||||
Setting at wasm://wasm/354ada0e:0:57
|
||||
Success!
|
||||
Setting at wasm://wasm/f3bba79a:0:58
|
||||
Setting at wasm://wasm/354ada0e:0:58
|
||||
Success!
|
||||
Running wasm code...
|
||||
Missing breakpoints: 10
|
||||
Script nr 2 parsed. URL: v8://test/runWasm
|
||||
Stopped at wasm://wasm/f3bba79a:0:48
|
||||
Stopped at wasm://wasm/354ada0e:0:48
|
||||
Missing breakpoints: 9
|
||||
Stopped at wasm://wasm/f3bba79a:0:50
|
||||
Stopped at wasm://wasm/354ada0e:0:50
|
||||
Missing breakpoints: 8
|
||||
Stopped at wasm://wasm/f3bba79a:0:54
|
||||
Stopped at wasm://wasm/354ada0e:0:54
|
||||
Missing breakpoints: 7
|
||||
Stopped at wasm://wasm/f3bba79a:0:40
|
||||
Stopped at wasm://wasm/354ada0e:0:40
|
||||
Missing breakpoints: 6
|
||||
Stopped at wasm://wasm/f3bba79a:0:41
|
||||
Stopped at wasm://wasm/354ada0e:0:41
|
||||
Missing breakpoints: 5
|
||||
Stopped at wasm://wasm/f3bba79a:0:43
|
||||
Stopped at wasm://wasm/354ada0e:0:43
|
||||
Missing breakpoints: 4
|
||||
Stopped at wasm://wasm/f3bba79a:0:45
|
||||
Stopped at wasm://wasm/354ada0e:0:45
|
||||
Missing breakpoints: 3
|
||||
Stopped at wasm://wasm/f3bba79a:0:56
|
||||
Stopped at wasm://wasm/354ada0e:0:56
|
||||
Missing breakpoints: 2
|
||||
Stopped at wasm://wasm/f3bba79a:0:57
|
||||
Stopped at wasm://wasm/354ada0e:0:57
|
||||
Missing breakpoints: 1
|
||||
Stopped at wasm://wasm/f3bba79a:0:58
|
||||
Stopped at wasm://wasm/354ada0e:0:58
|
||||
Missing breakpoints: 0
|
||||
|
|
|
@ -4,16 +4,16 @@ Calling instantiate function for module A.
|
|||
Waiting for wasm script to be parsed.
|
||||
Got wasm script!
|
||||
Setting breakpoint in line 1:
|
||||
Script wasm://wasm/aa8b4c12 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8c388106 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Calling instantiate function for module B.
|
||||
Calling main function on module B.
|
||||
Paused at 0:33.
|
||||
Script wasm://wasm/aa8b4c12 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8c388106 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Getting current stack trace via "new Error().stack".
|
||||
Error
|
||||
at v8://test/getStack:1:1
|
||||
at func (wasm://wasm/aa8b4c12:wasm-function[0]:0x21)
|
||||
at main (wasm://wasm/a6b2a496:wasm-function[1]:0x2f)
|
||||
at func (wasm://wasm/8c388106:wasm-function[0]:0x21)
|
||||
at main (wasm://wasm/24ba77a6:wasm-function[1]:0x2f)
|
||||
at v8://test/runWasm:1:22
|
||||
exports.main returned.
|
||||
Finished.
|
||||
|
|
|
@ -14,8 +14,8 @@ Hit breakpoints: []
|
|||
Instantiating module.
|
||||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Instantiating a second time (should trigger no breakpoint).
|
||||
Paused at v8://test/instantiate2 with reason "instrumentation".
|
||||
|
@ -33,14 +33,14 @@ Setting instrumentation breakpoint
|
|||
Instantiating module.
|
||||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Instantiating a second time (should trigger another breakpoint).
|
||||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Done.
|
||||
|
||||
|
@ -58,8 +58,8 @@ Hit breakpoints: []
|
|||
Calling exported function 'func' (should trigger a breakpoint).
|
||||
Paused at v8://test/call_func with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/aa8b4c12 with reason "instrumentation".
|
||||
Script wasm://wasm/aa8b4c12 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/8c388106 with reason "instrumentation".
|
||||
Script wasm://wasm/8c388106 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Calling exported function 'func' a second time (should trigger no breakpoint).
|
||||
Paused at v8://test/call_func with reason "instrumentation".
|
||||
|
@ -78,8 +78,8 @@ Instantiating wasm module without source map.
|
|||
Calling exported function 'func' (should trigger no breakpoint).
|
||||
Instantiating wasm module with source map.
|
||||
Calling exported function 'func' (should trigger a breakpoint).
|
||||
Paused at wasm://wasm/b2871d1e with reason "instrumentation".
|
||||
Script wasm://wasm/b2871d1e byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/c8e3a856 with reason "instrumentation".
|
||||
Script wasm://wasm/c8e3a856 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Done.
|
||||
|
||||
|
@ -125,8 +125,8 @@ Hit breakpoints: []
|
|||
Instantiating module should trigger a break.
|
||||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Remove instrumentation breakpoint..
|
||||
Compiling another wasm module.
|
||||
|
|
|
@ -6,8 +6,8 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at test_framework.js:1:1
|
||||
|
||||
|
@ -15,8 +15,8 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -25,31 +25,31 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x52)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x52)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
|
||||
Debugger paused on debugger statement
|
||||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: Error location: Error
|
||||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x56)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x56)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
|
||||
Debugger paused on debugger statement
|
||||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
Returned result {"result":{"type":"number","value":3,"description":"3"}}
|
||||
|
||||
|
@ -65,8 +65,8 @@ doPause (test.js:45:2)
|
|||
testSetTimeout (test.js:76:2)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -80,14 +80,14 @@ doPause (test.js:45:2)
|
|||
testSetTimeout (test.js:76:2)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
-- setTimeout --
|
||||
result (test.js:75:40)
|
||||
testSetTimeout (test.js:75:23)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -101,20 +101,20 @@ doPause (test.js:45:2)
|
|||
testSetTimeout (test.js:76:2)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
-- setTimeout --
|
||||
result (test.js:75:40)
|
||||
testSetTimeout (test.js:75:23)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
-- setTimeout --
|
||||
result (test.js:75:40)
|
||||
testSetTimeout (test.js:75:23)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -125,13 +125,13 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at innerPause (test.js:84:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at testDoubleNested (test.js:92:11)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at test_framework.js:1:1
|
||||
|
||||
|
@ -139,13 +139,13 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
innerPause (test.js:83:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -161,13 +161,13 @@ doPause (test.js:45:2)
|
|||
innerPause (test.js:85:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -175,13 +175,13 @@ Debugger paused on caught exception
|
|||
innerPause (test.js:87:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
||||
|
@ -189,26 +189,26 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at innerPause (test.js:84:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at testDoubleNested (test.js:92:11)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x52)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x52)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
|
||||
Debugger paused on debugger statement
|
||||
doPause (test.js:45:2)
|
||||
innerPause (test.js:83:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: Suspending wrapperFunc
|
||||
console: Error location: Error
|
||||
|
@ -221,50 +221,50 @@ doPause (test.js:45:2)
|
|||
innerPause (test.js:85:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
Debugger paused on caught exception
|
||||
innerPause (test.js:87:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: Error location: Error
|
||||
at doPause (test.js:45:34)
|
||||
at innerPause (test.js:84:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at testDoubleNested (test.js:92:11)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x56)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x56)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
|
||||
Debugger paused on debugger statement
|
||||
doPause (test.js:45:2)
|
||||
innerPause (test.js:83:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
console: Suspending wrapperFunc
|
||||
console: Error location: Error
|
||||
|
@ -277,25 +277,25 @@ doPause (test.js:45:2)
|
|||
innerPause (test.js:85:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
Debugger paused on caught exception
|
||||
innerPause (test.js:87:4)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDoubleNested (test.js:91:10)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
Returned result {"result":{"type":"number","value":3,"description":"3"}}
|
||||
|
||||
|
@ -306,8 +306,8 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at thread1 (test.js:56:18)
|
||||
at testStackSwitching (test.js:66:37)
|
||||
|
@ -317,8 +317,8 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
thread1 (test.js:55:17)
|
||||
testStackSwitching (test.js:65:36)
|
||||
|
@ -329,8 +329,8 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at alsoSimple (test.js:52:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x4e)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x4e)
|
||||
at wrapperFunc (test.js:36:15)
|
||||
at thread2 (test.js:59:18)
|
||||
at testStackSwitching (test.js:66:48)
|
||||
|
@ -340,8 +340,8 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
alsoSimple (test.js:51:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
thread2 (test.js:58:17)
|
||||
testStackSwitching (test.js:65:47)
|
||||
|
@ -367,8 +367,8 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x52)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x52)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
at async thread1 (test.js:56:12)
|
||||
at async Promise.all (index 0)
|
||||
|
@ -378,15 +378,15 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: Error location: Error
|
||||
at doPause (test.js:45:34)
|
||||
at alsoSimple (test.js:52:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x52)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x52)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
at async thread2 (test.js:59:12)
|
||||
at async Promise.all (index 1)
|
||||
|
@ -396,8 +396,8 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
alsoSimple (test.js:51:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: Error location: Error
|
||||
at doPause (test.js:45:34)
|
||||
|
@ -433,8 +433,8 @@ console: Error location: Error
|
|||
at doPause (test.js:45:34)
|
||||
at testSimple (test.js:71:3)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x56)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x56)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
at async thread1 (test.js:56:12)
|
||||
at async Promise.all (index 0)
|
||||
|
@ -444,15 +444,15 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
testSimple (test.js:70:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
console: Error location: Error
|
||||
at doPause (test.js:45:34)
|
||||
at alsoSimple (test.js:52:5)
|
||||
at js_func (test.js:25:18)
|
||||
at wrappedWasm (wasm://wasm/2a184bf2:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/2a184bf2:wasm-function[2]:0x56)
|
||||
at wrappedWasm (wasm://wasm/fac94cc6:wasm-function[1]:0x47)
|
||||
at threeTimes (wasm://wasm/fac94cc6:wasm-function[2]:0x56)
|
||||
at async wrapperFunc (test.js:38:12)
|
||||
at async thread2 (test.js:59:12)
|
||||
at async Promise.all (index 1)
|
||||
|
@ -462,8 +462,8 @@ Debugger paused on debugger statement
|
|||
doPause (test.js:45:2)
|
||||
alsoSimple (test.js:51:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:86)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:86)
|
||||
|
||||
Returned result {"result":{"type":"string","value":"3,6,3"}}
|
||||
|
||||
|
@ -473,8 +473,8 @@ Testing catch prediction through JSPI throwing from testSyncThrow to testCatch
|
|||
Debugger paused on caught exception
|
||||
testSyncThrow (test.js:97:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testCatch (test.js:116:10)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
@ -489,8 +489,8 @@ Debugger paused on caught exception
|
|||
testAsyncThrow (test.js:102:2)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testCatch (test.js:116:10)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
@ -503,8 +503,8 @@ console: Suspending wrapperFunc
|
|||
Debugger paused on caught exception
|
||||
testSyncThrowAfterResume (test.js:110:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
console: caught: fail
|
||||
Returned result {"result":{"type":"undefined"}}
|
||||
|
@ -513,8 +513,8 @@ Testing catch prediction through JSPI throwing from testSyncThrow to testDontCat
|
|||
Debugger paused on uncaught exception
|
||||
testSyncThrow (test.js:97:2)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDontCatch (test.js:125:2)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
@ -529,8 +529,8 @@ Debugger paused on uncaught exception
|
|||
testAsyncThrow (test.js:102:2)
|
||||
-- await --
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:78)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:78)
|
||||
wrapperFunc (test.js:35:14)
|
||||
testDontCatch (test.js:125:2)
|
||||
(anonymous) (test_framework.js:0:0)
|
||||
|
@ -543,8 +543,8 @@ console: Suspending wrapperFunc
|
|||
Debugger paused on uncaught exception
|
||||
testSyncThrowAfterResume (test.js:110:4)
|
||||
js_func (test.js:24:17)
|
||||
$wrappedWasm (wasm://wasm/2a184bf2:0:71)
|
||||
$threeTimes (wasm://wasm/2a184bf2:0:82)
|
||||
$wrappedWasm (wasm://wasm/fac94cc6:0:71)
|
||||
$threeTimes (wasm://wasm/fac94cc6:0:82)
|
||||
|
||||
Returned result {"result":{"type":"undefined"}}
|
||||
Exception was not caught
|
||||
|
|
|
@ -4,7 +4,7 @@ Running test: Test
|
|||
Calling instantiate function.
|
||||
Waiting for wasm scripts to be parsed.
|
||||
Ignoring script with url v8://test/instantiate
|
||||
Got wasm script: wasm://wasm/fd1bd682
|
||||
Got wasm script: wasm://wasm/7d022e0e
|
||||
Setting breakpoint on line 3 of wasm function
|
||||
{
|
||||
columnNumber : 39
|
||||
|
@ -12,7 +12,7 @@ Setting breakpoint on line 3 of wasm function
|
|||
scriptId : <scriptId>
|
||||
}
|
||||
paused No 1
|
||||
Script wasm://wasm/fd1bd682 byte offset 39: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/7d022e0e byte offset 39: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Remove breakpoint
|
||||
Debugger.resume
|
||||
exports.main returned!
|
||||
|
|
|
@ -11,7 +11,7 @@ Setting breakpoint on line 2 (first instruction) of third function
|
|||
scriptId : <scriptId>
|
||||
}
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 169: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e33badc2 byte offset 169: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $C (interpreted) (0:169):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -64,7 +64,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 171: Wasm opcode 0x24 (kExprGlobalSet)
|
||||
Script wasm://wasm/e33badc2 byte offset 171: Wasm opcode 0x24 (kExprGlobalSet)
|
||||
Scope:
|
||||
at $C (interpreted) (0:171):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -117,7 +117,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 173: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/e33badc2 byte offset 173: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at $C (interpreted) (0:173):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -170,7 +170,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 175: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/e33badc2 byte offset 175: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at $C (interpreted) (0:175):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -223,7 +223,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 177: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/e33badc2 byte offset 177: Wasm opcode 0x0b (kExprEnd)
|
||||
Scope:
|
||||
at $C (interpreted) (0:177):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -276,7 +276,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 160: Wasm opcode 0x1a (kExprDrop)
|
||||
Script wasm://wasm/e33badc2 byte offset 160: Wasm opcode 0x1a (kExprDrop)
|
||||
Scope:
|
||||
at $B (liftoff) (0:160):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -314,7 +314,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 161: Wasm opcode 0x1a (kExprDrop)
|
||||
Script wasm://wasm/e33badc2 byte offset 161: Wasm opcode 0x1a (kExprDrop)
|
||||
Scope:
|
||||
at $B (liftoff) (0:161):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -352,7 +352,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 162: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/e33badc2 byte offset 162: Wasm opcode 0x0b (kExprEnd)
|
||||
Scope:
|
||||
at $B (liftoff) (0:162):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -390,7 +390,7 @@ at (anonymous) (0:17):
|
|||
-- skipped globals
|
||||
|
||||
Paused:
|
||||
Script wasm://wasm/8daa7452 byte offset 130: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/e33badc2 byte offset 130: Wasm opcode 0x0b (kExprEnd)
|
||||
Scope:
|
||||
at $A (liftoff) (0:130):
|
||||
- scope (wasm-expression-stack):
|
||||
|
|
|
@ -9,7 +9,7 @@ done
|
|||
codeOffset : 20
|
||||
debugSymbols : [
|
||||
]
|
||||
embedderName : wasm://wasm/93c1e41e
|
||||
embedderName : wasm://wasm/a7090996
|
||||
endColumn : 68
|
||||
endLine : 0
|
||||
executionContextId : <executionContextId>
|
||||
|
@ -34,7 +34,7 @@ done
|
|||
}
|
||||
startColumn : 0
|
||||
startLine : 0
|
||||
url : wasm://wasm/93c1e41e
|
||||
url : wasm://wasm/a7090996
|
||||
}
|
||||
Done.
|
||||
|
||||
|
@ -47,7 +47,7 @@ done
|
|||
codeOffset : 20
|
||||
debugSymbols : [
|
||||
]
|
||||
embedderName : wasm://wasm/252a2e9e
|
||||
embedderName : wasm://wasm/76d6ec9e
|
||||
endColumn : 40
|
||||
endLine : 0
|
||||
executionContextId : <executionContextId>
|
||||
|
@ -72,6 +72,6 @@ done
|
|||
}
|
||||
startColumn : 0
|
||||
startLine : 0
|
||||
url : wasm://wasm/252a2e9e
|
||||
url : wasm://wasm/76d6ec9e
|
||||
}
|
||||
Done.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Tests disassembling wasm scripts
|
||||
Session #1: Script parsed. URL: wasm://wasm/moduleName-32fa2962.
|
||||
Session #1: Source for wasm://wasm/moduleName-32fa2962:
|
||||
Session #1: Script parsed. URL: wasm://wasm/moduleName-70e7540a.
|
||||
Session #1: Source for wasm://wasm/moduleName-70e7540a:
|
||||
bytecode:
|
||||
0x00 0x61 0x73 0x6d 0x01 0x00 0x00 0x00 ;; offset 0..7
|
||||
0x01 0x09 0x02 0x60 0x01 0x6f 0x01 0x7f ;; offset 8..15
|
||||
|
|
|
@ -1,122 +1,122 @@
|
|||
Tests how wasm scripts are reported
|
||||
Check that each inspector gets a wasm script at module creation time.
|
||||
Session #1: Script #0 parsed. URL: wasm://wasm/95d28bc6. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #2: Script #0 parsed. URL: wasm://wasm/95d28bc6. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #1: Script #1 parsed. URL: wasm://wasm/95d28bc6. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #2: Script #1 parsed. URL: wasm://wasm/95d28bc6. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #1: Script #2 parsed. URL: wasm://wasm/7adb1e36. Script ID: 1, Source map URL: , debug symbols: [ExternalDWARF:abc]. module begin: 0, module end: 103, code offset: 34
|
||||
Session #2: Script #2 parsed. URL: wasm://wasm/7adb1e36. Script ID: 1, Source map URL: , debug symbols: [ExternalDWARF:abc]. module begin: 0, module end: 103, code offset: 34
|
||||
Session #1: Script #3 parsed. URL: wasm://wasm/908b2a0a. Script ID: 2, Source map URL: , debug symbols: [EmbeddedDWARF:undefined]. module begin: 0, module end: 96, code offset: 34
|
||||
Session #2: Script #3 parsed. URL: wasm://wasm/908b2a0a. Script ID: 2, Source map URL: , debug symbols: [EmbeddedDWARF:undefined]. module begin: 0, module end: 96, code offset: 34
|
||||
Session #1: Script #4 parsed. URL: wasm://wasm/a6778d32. Script ID: 3, Source map URL: abc, debug symbols: [SourceMap:abc]. module begin: 0, module end: 100, code offset: 34
|
||||
Session #2: Script #4 parsed. URL: wasm://wasm/a6778d32. Script ID: 3, Source map URL: abc, debug symbols: [SourceMap:abc]. module begin: 0, module end: 100, code offset: 34
|
||||
Session #1: Script #5 parsed. URL: wasm://wasm/932c8bee. Script ID: 4, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #2: Script #5 parsed. URL: wasm://wasm/932c8bee. Script ID: 4, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #1: Script #6 parsed. URL: wasm://wasm/ff1c21ea. Script ID: 5, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #2: Script #6 parsed. URL: wasm://wasm/ff1c21ea. Script ID: 5, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #1: Script #7 parsed. URL: wasm://wasm/61c68ca6. Script ID: 6, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #2: Script #7 parsed. URL: wasm://wasm/61c68ca6. Script ID: 6, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #1: Script #8 parsed. URL: wasm://wasm/05327fba. Script ID: 7, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #2: Script #8 parsed. URL: wasm://wasm/05327fba. Script ID: 7, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #1: Script #9 parsed. URL: wasm://wasm/498d127a. Script ID: 8, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #2: Script #9 parsed. URL: wasm://wasm/498d127a. Script ID: 8, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #1: Script #10 parsed. URL: wasm://wasm/aaebee8a. Script ID: 9, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #2: Script #10 parsed. URL: wasm://wasm/aaebee8a. Script ID: 9, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #1: Script #11 parsed. URL: wasm://wasm/c2605b36. Script ID: 10, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 145, code offset: 34
|
||||
Session #2: Script #11 parsed. URL: wasm://wasm/c2605b36. Script ID: 10, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 145, code offset: 34
|
||||
Session #1: Source for wasm://wasm/95d28bc6:
|
||||
Session #1: Script #0 parsed. URL: wasm://wasm/7b04570e. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #2: Script #0 parsed. URL: wasm://wasm/7b04570e. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #1: Script #1 parsed. URL: wasm://wasm/7b04570e. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #2: Script #1 parsed. URL: wasm://wasm/7b04570e. Script ID: 0, Source map URL: , debug symbols: []. module begin: 0, module end: 77, code offset: 34
|
||||
Session #1: Script #2 parsed. URL: wasm://wasm/21e2f406. Script ID: 1, Source map URL: , debug symbols: [ExternalDWARF:abc]. module begin: 0, module end: 103, code offset: 34
|
||||
Session #2: Script #2 parsed. URL: wasm://wasm/21e2f406. Script ID: 1, Source map URL: , debug symbols: [ExternalDWARF:abc]. module begin: 0, module end: 103, code offset: 34
|
||||
Session #1: Script #3 parsed. URL: wasm://wasm/ba7c35be. Script ID: 2, Source map URL: , debug symbols: [EmbeddedDWARF:undefined]. module begin: 0, module end: 96, code offset: 34
|
||||
Session #2: Script #3 parsed. URL: wasm://wasm/ba7c35be. Script ID: 2, Source map URL: , debug symbols: [EmbeddedDWARF:undefined]. module begin: 0, module end: 96, code offset: 34
|
||||
Session #1: Script #4 parsed. URL: wasm://wasm/1baa71fe. Script ID: 3, Source map URL: abc, debug symbols: [SourceMap:abc]. module begin: 0, module end: 100, code offset: 34
|
||||
Session #2: Script #4 parsed. URL: wasm://wasm/1baa71fe. Script ID: 3, Source map URL: abc, debug symbols: [SourceMap:abc]. module begin: 0, module end: 100, code offset: 34
|
||||
Session #1: Script #5 parsed. URL: wasm://wasm/c047292e. Script ID: 4, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #2: Script #5 parsed. URL: wasm://wasm/c047292e. Script ID: 4, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #1: Script #6 parsed. URL: wasm://wasm/e56b2672. Script ID: 5, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #2: Script #6 parsed. URL: wasm://wasm/e56b2672. Script ID: 5, Source map URL: abc, debug symbols: [SourceMap:abc,ExternalDWARF:abc]. module begin: 0, module end: 126, code offset: 34
|
||||
Session #1: Script #7 parsed. URL: wasm://wasm/c9614a4e. Script ID: 6, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #2: Script #7 parsed. URL: wasm://wasm/c9614a4e. Script ID: 6, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #1: Script #8 parsed. URL: wasm://wasm/639d13c6. Script ID: 7, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #2: Script #8 parsed. URL: wasm://wasm/639d13c6. Script ID: 7, Source map URL: , debug symbols: [EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 122, code offset: 34
|
||||
Session #1: Script #9 parsed. URL: wasm://wasm/95e97206. Script ID: 8, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #2: Script #9 parsed. URL: wasm://wasm/95e97206. Script ID: 8, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #1: Script #10 parsed. URL: wasm://wasm/7ab47392. Script ID: 9, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #2: Script #10 parsed. URL: wasm://wasm/7ab47392. Script ID: 9, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined]. module begin: 0, module end: 119, code offset: 34
|
||||
Session #1: Script #11 parsed. URL: wasm://wasm/6d81a006. Script ID: 10, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 145, code offset: 34
|
||||
Session #2: Script #11 parsed. URL: wasm://wasm/6d81a006. Script ID: 10, Source map URL: abc, debug symbols: [SourceMap:abc,EmbeddedDWARF:undefined,ExternalDWARF:abc]. module begin: 0, module end: 145, code offset: 34
|
||||
Session #1: Source for wasm://wasm/7b04570e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/95d28bc6:
|
||||
Session #2: Source for wasm://wasm/7b04570e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/95d28bc6:
|
||||
Session #1: Source for wasm://wasm/7b04570e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/95d28bc6:
|
||||
Session #2: Source for wasm://wasm/7b04570e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/7adb1e36:
|
||||
Session #1: Source for wasm://wasm/21e2f406:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/7adb1e36:
|
||||
Session #2: Source for wasm://wasm/21e2f406:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/908b2a0a:
|
||||
Session #1: Source for wasm://wasm/ba7c35be:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/908b2a0a:
|
||||
Session #2: Source for wasm://wasm/ba7c35be:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/a6778d32:
|
||||
Session #1: Source for wasm://wasm/1baa71fe:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/a6778d32:
|
||||
Session #2: Source for wasm://wasm/1baa71fe:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/932c8bee:
|
||||
Session #1: Source for wasm://wasm/c047292e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/932c8bee:
|
||||
Session #2: Source for wasm://wasm/c047292e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/ff1c21ea:
|
||||
Session #1: Source for wasm://wasm/e56b2672:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/ff1c21ea:
|
||||
Session #2: Source for wasm://wasm/e56b2672:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/61c68ca6:
|
||||
Session #1: Source for wasm://wasm/c9614a4e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/61c68ca6:
|
||||
Session #2: Source for wasm://wasm/c9614a4e:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/05327fba:
|
||||
Session #1: Source for wasm://wasm/639d13c6:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/05327fba:
|
||||
Session #2: Source for wasm://wasm/639d13c6:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/498d127a:
|
||||
Session #1: Source for wasm://wasm/95e97206:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/498d127a:
|
||||
Session #2: Source for wasm://wasm/95e97206:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/aaebee8a:
|
||||
Session #1: Source for wasm://wasm/7ab47392:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/aaebee8a:
|
||||
Session #2: Source for wasm://wasm/7ab47392:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #1: Source for wasm://wasm/c2605b36:
|
||||
Session #1: Source for wasm://wasm/6d81a006:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
Session #2: Source for wasm://wasm/c2605b36:
|
||||
Session #2: Source for wasm://wasm/6d81a006:
|
||||
Raw: 00 61 73 6d 01 00 00 00 01 07 02 60 00 00 60 00 00 03 03 02 00 01 07 08 01 04 6d 61 69 6e 00 01 0a 0e 02 03 00 01 0b 08 00 02 40 41 02 1a 0b 0b 00 15 10 73 6f 75 72 63 65 4d 61 70 70 69 6e 67 55 52 4c 03 61 62 63 00 11 0b 2e 64 65 62 75 67 5f 69 6e 66 6f 01 02 03 04 05 00 18 13 65 78 74 65 72 6e 61 6c 5f 64 65 62 75 67 5f 69 6e 66 6f 03 61 62 63 00 1b 04 6e 61 6d 65 01 14 02 00 0b 6e 6f 70 46 75 6e 63 74 69 6f 6e 01 04 6d 61 69 6e
|
||||
Imports: []
|
||||
Exports: [main: function]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Tests how wasm scripts are reported with name
|
||||
Check that the inspector gets four wasm scripts at module creation time.
|
||||
Session #1: Script #0 parsed. URL: wasm://wasm/e28c8a92.
|
||||
Session #1: Script #1 parsed. URL: wasm://wasm/moduleName-70d13c92.
|
||||
Session #1: Source for wasm://wasm/e28c8a92:
|
||||
Session #1: Script #0 parsed. URL: wasm://wasm/a4d4331e.
|
||||
Session #1: Script #1 parsed. URL: wasm://wasm/moduleName-d7525102.
|
||||
Session #1: Source for wasm://wasm/a4d4331e:
|
||||
|
||||
Session #1: Source for wasm://wasm/moduleName-70d13c92:
|
||||
Session #1: Source for wasm://wasm/moduleName-d7525102:
|
||||
|
|
|
@ -3,10 +3,10 @@ Tests stepping through wasm scripts.
|
|||
Running test: test
|
||||
Instantiating.
|
||||
Waiting for wasm script (ignoring first non-wasm script).
|
||||
Setting breakpoint at offset 38 on script wasm://wasm/24c0ccda
|
||||
Setting breakpoint at offset 38 on script wasm://wasm/0c10a5fe
|
||||
Calling main(4)
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -37,7 +37,7 @@ Setting breakpoint at offset 49 on script v8://test/runWasm
|
|||
Setting breakpoint at offset 45 on script v8://test/runWasm
|
||||
Setting breakpoint at offset 47 on script v8://test/runWasm
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -59,7 +59,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -73,7 +73,7 @@ at $wasm_B (0:45):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at $wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -87,7 +87,7 @@ at $wasm_B (0:47):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -101,7 +101,7 @@ at $wasm_B (0:49):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at $wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -115,7 +115,7 @@ at $wasm_B (0:51):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at $wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -129,7 +129,7 @@ at $wasm_B (0:53):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -143,7 +143,7 @@ at $wasm_B (0:54):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -165,7 +165,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -187,7 +187,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -201,7 +201,7 @@ at $wasm_B (0:45):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at $wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -215,7 +215,7 @@ at $wasm_B (0:47):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -229,7 +229,7 @@ at $wasm_B (0:49):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at $wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -243,7 +243,7 @@ at $wasm_B (0:51):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at $wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -257,7 +257,7 @@ at $wasm_B (0:53):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -271,7 +271,7 @@ at $wasm_B (0:54):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -293,7 +293,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -315,7 +315,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -329,7 +329,7 @@ at $wasm_B (0:45):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at $wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -343,7 +343,7 @@ at $wasm_B (0:47):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -357,7 +357,7 @@ at $wasm_B (0:49):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at $wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -371,7 +371,7 @@ at $wasm_B (0:51):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at $wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -385,7 +385,7 @@ at $wasm_B (0:53):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -399,7 +399,7 @@ at $wasm_B (0:54):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -421,7 +421,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/0c10a5fe byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Scope:
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -443,7 +443,7 @@ at $wasm_B (0:56):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/0c10a5fe byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Scope:
|
||||
at $wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -457,7 +457,7 @@ at $wasm_B (0:45):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at $wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
|
@ -471,7 +471,7 @@ at $wasm_B (0:47):
|
|||
at (anonymous) (0:17):
|
||||
-- skipped
|
||||
Paused:
|
||||
Script wasm://wasm/24c0ccda byte offset 61: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/0c10a5fe byte offset 61: Wasm opcode 0x0b (kExprEnd)
|
||||
Scope:
|
||||
at $wasm_B (0:61):
|
||||
- scope (wasm-expression-stack):
|
||||
|
|
|
@ -9,11 +9,11 @@ Instantiating module.
|
|||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Setting breakpoint at instrumentation break location
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "other".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "other".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: ["4:0:26:4"]
|
||||
Done.
|
||||
|
||||
|
@ -26,11 +26,11 @@ Instantiating module.
|
|||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Setting breakpoint at instrumentation break location
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Paused at wasm://wasm/341d515e with reason "other".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "other".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: ["4:0:26:4"]
|
||||
Done.
|
||||
|
||||
|
@ -43,7 +43,7 @@ Instantiating module.
|
|||
Paused at v8://test/instantiate with reason "instrumentation".
|
||||
Hit breakpoints: []
|
||||
Setting breakpoint at instrumentation break location
|
||||
Paused at wasm://wasm/341d515e with reason "instrumentation".
|
||||
Script wasm://wasm/341d515e byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Paused at wasm://wasm/20da547a with reason "instrumentation".
|
||||
Script wasm://wasm/20da547a byte offset 26: Wasm opcode 0x01 (kExprNop)
|
||||
Hit breakpoints: []
|
||||
Done.
|
||||
|
|
|
@ -3,7 +3,7 @@ Tests pausing a running script and stepping
|
|||
Running test: testPauseAndStep
|
||||
Instantiate
|
||||
Wait for script
|
||||
Got wasm script: wasm://wasm/09f1bd7e
|
||||
Got wasm script: wasm://wasm/c84b7cde
|
||||
Run
|
||||
Expecting to pause at 61
|
||||
Paused at offset 61; wasm-expression-stack: []; local: [12 (i32)]
|
||||
|
|
|
@ -12,8 +12,8 @@ Result of evaluate (string):
|
|||
Error: this is your stack trace:
|
||||
-- skipped --
|
||||
at call_debugger (<anonymous>:3:5)
|
||||
at call_func (wasm://wasm/42056f7a:wasm-function[1]:0x37)
|
||||
at main (wasm://wasm/42056f7a:wasm-function[2]:0x3e)
|
||||
at call_func (wasm://wasm/37655946:wasm-function[1]:0x37)
|
||||
at main (wasm://wasm/37655946:wasm-function[2]:0x3e)
|
||||
at testFunction (<anonymous>:15:20)
|
||||
at <anonymous>:1:1
|
||||
Finished!
|
||||
|
|
|
@ -2,7 +2,7 @@ Tests repeated stepping through a large function (should not OOM)
|
|||
|
||||
Running test: test
|
||||
Setting up global instance variable.
|
||||
Got wasm script: wasm://wasm/e78ec4f6
|
||||
Got wasm script: wasm://wasm/8f70f0e2
|
||||
Setting breakpoint
|
||||
Paused 50 and running...
|
||||
Paused 100 and running...
|
||||
|
|
|
@ -5,7 +5,7 @@ Instantiating.
|
|||
Calling div function.
|
||||
Paused at:
|
||||
--- 0 ---
|
||||
Script wasm://wasm/64a0bc16 byte offset 46: Wasm opcode 0x6d (kExprI32DivS)
|
||||
Script wasm://wasm/a9a86c5e byte offset 46: Wasm opcode 0x6d (kExprI32DivS)
|
||||
scope at $div (0:46):
|
||||
$a: 1 (i32)
|
||||
$b: 0 (i32)
|
||||
|
@ -35,7 +35,7 @@ Paused at:
|
|||
-> resume
|
||||
Paused at:
|
||||
--- 0 ---
|
||||
Script wasm://wasm/64a0bc16 byte offset 46: Wasm opcode 0x6d (kExprI32DivS)
|
||||
Script wasm://wasm/a9a86c5e byte offset 46: Wasm opcode 0x6d (kExprI32DivS)
|
||||
scope at $div (0:46):
|
||||
$a: -2147483648 (i32)
|
||||
$b: -1 (i32)
|
||||
|
|
|
@ -2,13 +2,13 @@ Step into a function that starts with a non-breakable opcode (i.e. block), then
|
|||
|
||||
Running test: test
|
||||
Setting up global instance variable.
|
||||
Got wasm script: wasm://wasm/a21a01be
|
||||
Got wasm script: wasm://wasm/4658c40e
|
||||
Setting breakpoint on offset 44
|
||||
Running main function.
|
||||
Script wasm://wasm/a21a01be byte offset 44: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/4658c40e byte offset 44: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/a21a01be byte offset 40: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/4658c40e byte offset 40: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/a21a01be byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/4658c40e byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.resume called
|
||||
exports.main returned.
|
||||
|
|
|
@ -2,121 +2,121 @@ Tests stepping through wasm scripts by byte offsets
|
|||
|
||||
Running test: test
|
||||
Setting up global instance variable.
|
||||
Got wasm script: wasm://wasm/521360e6
|
||||
Got wasm script: wasm://wasm/dfd65932
|
||||
Got wasm script: wasm://wasm/7322d8a2
|
||||
Blackbox wasm script: wasm://wasm/dfd65932
|
||||
Setting breakpoint on offset 103 (should be propagated to 104, the offset of the call), url wasm://wasm/7322d8a2
|
||||
Got wasm script: wasm://wasm/4efe91f2
|
||||
Got wasm script: wasm://wasm/f60b267e
|
||||
Got wasm script: wasm://wasm/e72d7ac6
|
||||
Blackbox wasm script: wasm://wasm/f60b267e
|
||||
Setting breakpoint on offset 103 (should be propagated to 104, the offset of the call), url wasm://wasm/e72d7ac6
|
||||
{
|
||||
columnNumber : 104
|
||||
lineNumber : 0
|
||||
scriptId : <scriptId>
|
||||
}
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 84: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 84: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/521360e6 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/4efe91f2 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOver called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/521360e6 byte offset 41: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/4efe91f2 byte offset 41: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 92: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 92: Wasm opcode 0x04 (kExprIf)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 94: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 94: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 96: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 96: Wasm opcode 0x41 (kExprI32Const)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 98: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 98: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 99: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 99: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 101: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 101: Wasm opcode 0x41 (kExprI32Const)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 104: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 83: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 84: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 84: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/7322d8a2 byte offset 85: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 85: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 106: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/521360e6 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/4efe91f2 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/521360e6 byte offset 41: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/4efe91f2 byte offset 41: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/521360e6 byte offset 42: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/4efe91f2 byte offset 42: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 108: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/7322d8a2 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 90: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume called
|
||||
exports.main returned!
|
||||
Test stepping over a recursive call
|
||||
Setting breakpoint on the recursive call instruction @+126, url wasm://wasm/7322d8a2
|
||||
Setting breakpoint on the recursive call instruction @+126, url wasm://wasm/e72d7ac6
|
||||
{
|
||||
columnNumber : 126
|
||||
lineNumber : 0
|
||||
scriptId : <scriptId>
|
||||
}
|
||||
Function: $fact
|
||||
Script wasm://wasm/7322d8a2 byte offset 126: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 126: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Removing breakpoint
|
||||
Debugger.stepOver called
|
||||
Function: $fact
|
||||
Script wasm://wasm/7322d8a2 byte offset 128: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/e72d7ac6 byte offset 128: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume called
|
||||
|
|
|
@ -4,7 +4,7 @@ Running test: test
|
|||
Calling instantiate function.
|
||||
Waiting for wasm scripts to be parsed.
|
||||
Ignoring script with url v8://test/instantiate
|
||||
Got wasm script: wasm://wasm/fd1bd682
|
||||
Got wasm script: wasm://wasm/7d022e0e
|
||||
Setting breakpoint on i32.const
|
||||
{
|
||||
columnNumber : 37
|
||||
|
@ -24,9 +24,9 @@ paused
|
|||
|
||||
Debugger.stepInto
|
||||
paused
|
||||
Script wasm://wasm/fd1bd682 byte offset 35: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/7d022e0e byte offset 35: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume
|
||||
paused
|
||||
Script wasm://wasm/fd1bd682 byte offset 37: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/7d022e0e byte offset 37: Wasm opcode 0x41 (kExprI32Const)
|
||||
Debugger.resume
|
||||
exports.main returned!
|
||||
|
|
|
@ -10,7 +10,7 @@ function pauseAlternating() {
|
|||
pause = !pause;
|
||||
|
||||
Paused at:
|
||||
Script wasm://wasm/004fa7ea byte offset 53: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/15df010e byte offset 53: Wasm opcode 0x0b (kExprEnd)
|
||||
Paused at:
|
||||
instance.exports.main()#
|
||||
|
||||
|
@ -32,7 +32,7 @@ function pauseAlternating() {
|
|||
pause = !pause;
|
||||
|
||||
Paused at:
|
||||
Script wasm://wasm/004fa7ea byte offset 53: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/15df010e byte offset 53: Wasm opcode 0x0b (kExprEnd)
|
||||
Paused at:
|
||||
instance.exports.main()#
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ Running test: test
|
|||
Calling instantiate function.
|
||||
Waiting for wasm scripts to be parsed.
|
||||
Ignoring script with url v8://test/instantiate
|
||||
Got wasm script: wasm://wasm/8f673656
|
||||
Got wasm script: wasm://wasm/242f4a16
|
||||
Setting breakpoint at start of wasm function
|
||||
{
|
||||
columnNumber : 33
|
||||
|
@ -19,7 +19,7 @@ function test() {
|
|||
|
||||
Debugger.resume
|
||||
paused
|
||||
Script wasm://wasm/8f673656 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/242f4a16 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut
|
||||
paused
|
||||
instance.exports.main();
|
||||
|
@ -38,10 +38,10 @@ function test() {
|
|||
|
||||
Debugger.resume
|
||||
paused
|
||||
Script wasm://wasm/8f673656 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/242f4a16 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOver
|
||||
paused
|
||||
Script wasm://wasm/8f673656 byte offset 34: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/242f4a16 byte offset 34: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.resume
|
||||
exports.main returned!
|
||||
Finished run 2!
|
||||
|
@ -54,10 +54,10 @@ function test() {
|
|||
|
||||
Debugger.resume
|
||||
paused
|
||||
Script wasm://wasm/8f673656 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/242f4a16 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto
|
||||
paused
|
||||
Script wasm://wasm/8f673656 byte offset 34: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/242f4a16 byte offset 34: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.resume
|
||||
exports.main returned!
|
||||
Finished run 3!
|
||||
|
|
|
@ -2,105 +2,105 @@ Tests stepping through wasm script with blackboxed range by byte offsets
|
|||
|
||||
Running test: test
|
||||
Setting up global instance variable.
|
||||
Got wasm script: wasm://wasm/929ca0d2
|
||||
Blackbox wasm script wasm://wasm/929ca0d2 in range from 50 to 56
|
||||
Setting breakpoint on offset 78 (should be propagated to 79, the offset of the call), url wasm://wasm/929ca0d2
|
||||
Got wasm script: wasm://wasm/665d63a2
|
||||
Blackbox wasm script wasm://wasm/665d63a2 in range from 50 to 56
|
||||
Setting breakpoint on offset 78 (should be propagated to 79, the offset of the call), url wasm://wasm/665d63a2
|
||||
{
|
||||
columnNumber : 79
|
||||
lineNumber : 0
|
||||
scriptId : <scriptId>
|
||||
}
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 59: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 59: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/929ca0d2 byte offset 47: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 47: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOver called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/929ca0d2 byte offset 48: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 48: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/665d63a2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/665d63a2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepOut called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepOver called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/665d63a2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/665d63a2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 67: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/665d63a2 byte offset 67: Wasm opcode 0x04 (kExprIf)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 69: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/665d63a2 byte offset 69: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 71: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/665d63a2 byte offset 71: Wasm opcode 0x41 (kExprI32Const)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 73: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/665d63a2 byte offset 73: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 74: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/665d63a2 byte offset 74: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 76: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/665d63a2 byte offset 76: Wasm opcode 0x41 (kExprI32Const)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 79: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 58: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 59: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 59: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_A
|
||||
Script wasm://wasm/929ca0d2 byte offset 60: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/665d63a2 byte offset 60: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/665d63a2 byte offset 81: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/929ca0d2 byte offset 47: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 47: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/929ca0d2 byte offset 48: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/665d63a2 byte offset 48: Wasm opcode 0x01 (kExprNop)
|
||||
Debugger.stepInto called
|
||||
Function: $not_ignored
|
||||
Script wasm://wasm/929ca0d2 byte offset 49: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/665d63a2 byte offset 49: Wasm opcode 0x0b (kExprEnd)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/665d63a2 byte offset 83: Wasm opcode 0x0c (kExprBr)
|
||||
Debugger.stepInto called
|
||||
Function: $wasm_B
|
||||
Script wasm://wasm/929ca0d2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/665d63a2 byte offset 65: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Debugger.resume called
|
||||
exports.main returned!
|
||||
|
|
|
@ -2,90 +2,90 @@ Tests stepping through wasm scripts by byte offsets
|
|||
|
||||
Running test: test
|
||||
Setting up global instance variable
|
||||
Got wasm script: wasm://wasm/8ccc9796
|
||||
Got wasm script: wasm://wasm/befe41aa
|
||||
{
|
||||
columnNumber : 46
|
||||
lineNumber : 0
|
||||
scriptId : <scriptId>
|
||||
}
|
||||
Test with valid skip lists
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping over without skip list
|
||||
Testing stepOver with skipList: []
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/8ccc9796 byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping over with skip list
|
||||
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":50}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":60},"end":{"lineNumber":0,"columnNumber":62}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/8ccc9796 byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping over start location is inclusive
|
||||
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":48},"end":{"lineNumber":0,"columnNumber":61}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping over end location is exclusive
|
||||
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":49},"end":{"lineNumber":0,"columnNumber":62}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping into without skip list
|
||||
Testing stepInto with skipList: []
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/8ccc9796 byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/8ccc9796 byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8ccc9796 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8ccc9796 byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/befe41aa byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/befe41aa byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping into with skip list, while call itself is skipped
|
||||
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":39},"end":{"lineNumber":0,"columnNumber":41}},{"scriptId":"4","start":{"lineNumber":0,"columnNumber":50},"end":{"lineNumber":0,"columnNumber":62}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping into start location is inclusive
|
||||
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":39},"end":{"lineNumber":0,"columnNumber":40}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/8ccc9796 byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/8ccc9796 byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8ccc9796 byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/befe41aa byte offset 40: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: Stepping into end location is exclusive
|
||||
Testing stepInto with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":38},"end":{"lineNumber":0,"columnNumber":41}}]
|
||||
Script wasm://wasm/8ccc9796 byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/8ccc9796 byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/8ccc9796 byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/8ccc9796 byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/8ccc9796 byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/8ccc9796 byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/8ccc9796 byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 48: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/befe41aa byte offset 50: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 52: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 54: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/befe41aa byte offset 55: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/befe41aa byte offset 57: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/befe41aa byte offset 60: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/befe41aa byte offset 41: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/befe41aa byte offset 62: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test with invalid skip lists
|
||||
Script wasm://wasm/8ccc9796 byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/befe41aa byte offset 46: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Test: start position has invalid column number
|
||||
Testing stepOver with skipList: [{"scriptId":"4","start":{"lineNumber":0,"columnNumber":-1},"end":{"lineNumber":0,"columnNumber":62}}]
|
||||
Position missing 'column' or 'column' < 0.
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
Tests stepping through wasm scripts with source maps
|
||||
|
||||
Running test: test
|
||||
Got wasm script: wasm://wasm/d4d551ee
|
||||
Got wasm script: wasm://wasm/9b4bf87e
|
||||
Script sourceMapURL: abc
|
||||
Requesting source for wasm://wasm/d4d551ee...
|
||||
Requesting source for wasm://wasm/9b4bf87e...
|
||||
Source retrieved without error: true
|
||||
Setting breakpoint on offset 54 (on the setlocal before the call), url wasm://wasm/d4d551ee
|
||||
Setting breakpoint on offset 54 (on the setlocal before the call), url wasm://wasm/9b4bf87e
|
||||
{
|
||||
columnNumber : 54
|
||||
lineNumber : 0
|
||||
scriptId : <scriptId>
|
||||
}
|
||||
Script wasm://wasm/d4d551ee byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 3 (i32)
|
||||
|
@ -23,7 +23,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
at $wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -34,7 +34,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -50,7 +50,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOver called
|
||||
Script wasm://wasm/d4d551ee byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/9b4bf87e byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -66,7 +66,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOut called
|
||||
Script wasm://wasm/d4d551ee byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
at $wasm_B (0:58):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -77,7 +77,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOut called
|
||||
Script wasm://wasm/d4d551ee byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 2 (i32)
|
||||
|
@ -89,7 +89,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOver called
|
||||
Script wasm://wasm/d4d551ee byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
at $wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -100,7 +100,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOver called
|
||||
Script wasm://wasm/d4d551ee byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
at $wasm_B (0:58):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -111,7 +111,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.resume called
|
||||
Script wasm://wasm/d4d551ee byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
|
@ -123,7 +123,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
at $wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -134,7 +134,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -150,7 +150,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepOut called
|
||||
Script wasm://wasm/d4d551ee byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
at $wasm_B (0:58):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -161,7 +161,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 45: Wasm opcode 0x20 (kExprLocalGet)
|
||||
at $wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -172,7 +172,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Script wasm://wasm/9b4bf87e byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
at $wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
|
@ -184,7 +184,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 49: Wasm opcode 0x20 (kExprLocalGet)
|
||||
at $wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -195,7 +195,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Script wasm://wasm/9b4bf87e byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
at $wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
|
@ -207,7 +207,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Script wasm://wasm/9b4bf87e byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
at $wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
|
@ -220,7 +220,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Script wasm://wasm/9b4bf87e byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
at $wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 0 (i32)
|
||||
|
@ -232,7 +232,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
Script wasm://wasm/9b4bf87e byte offset 56: Wasm opcode 0x10 (kExprCallFunction)
|
||||
at $wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -243,7 +243,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/9b4bf87e byte offset 38: Wasm opcode 0x01 (kExprNop)
|
||||
at $wasm_A (0:38):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -259,7 +259,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/9b4bf87e byte offset 39: Wasm opcode 0x01 (kExprNop)
|
||||
at $wasm_A (0:39):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -275,7 +275,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 40: Wasm opcode 0x0b (kExprEnd)
|
||||
Script wasm://wasm/9b4bf87e byte offset 40: Wasm opcode 0x0b (kExprEnd)
|
||||
at $wasm_A (0:40):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
@ -291,7 +291,7 @@ at (anonymous) (0:17):
|
|||
- scope (global):
|
||||
-- skipped
|
||||
Debugger.stepInto called
|
||||
Script wasm://wasm/d4d551ee byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
Script wasm://wasm/9b4bf87e byte offset 58: Wasm opcode 0x0c (kExprBr)
|
||||
at $wasm_B (0:58):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
|
|
|
@ -21,4 +21,4 @@ Calling wasm export.
|
|||
value : Before Wasm execution
|
||||
}
|
||||
Paused:
|
||||
Script wasm://wasm/aa8b4c12 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
Script wasm://wasm/8c388106 byte offset 33: Wasm opcode 0x01 (kExprNop)
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
^
|
||||
Error
|
||||
at throw_wasm_exn (*%(basename)s:15:19)
|
||||
at throw (wasm://wasm/902a1856:wasm-function[1]:0x32)
|
||||
at throw (wasm://wasm/f232c786:wasm-function[1]:0x32)
|
||||
at *%(basename)s:19:23
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
wasm-function[0]:0x22: RuntimeError: unreachable
|
||||
RuntimeError: unreachable
|
||||
at main (wasm://wasm/c6021c96:wasm-function[0]:0x22)
|
||||
at main (wasm://wasm/d578b3d2:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:31
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
wasm-function[0]:0x22: RuntimeError: unreachable
|
||||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:31
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
wasm-function[0]:0x22: RuntimeError: unreachable
|
||||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:31
|
||||
|
|
2
deps/v8/test/message/fail/wasm-no-name.out
vendored
2
deps/v8/test/message/fail/wasm-no-name.out
vendored
|
@ -1,4 +1,4 @@
|
|||
wasm-function[0]:0x22: RuntimeError: unreachable
|
||||
RuntimeError: unreachable
|
||||
at wasm://wasm/e5b00f2a:wasm-function[0]:0x22
|
||||
at wasm://wasm/44ee3bce:wasm-function[0]:0x22
|
||||
at *%(basename)s:{NUMBER}:31
|
||||
|
|
2
deps/v8/test/message/fail/wasm-trap.out
vendored
2
deps/v8/test/message/fail/wasm-trap.out
vendored
|
@ -1,4 +1,4 @@
|
|||
wasm-function[1]:0x30: RuntimeError: divide by zero
|
||||
RuntimeError: divide by zero
|
||||
at main (wasm://wasm/2d95b2ce:wasm-function[1]:0x30)
|
||||
at main (wasm://wasm/7b123b7e:wasm-function[1]:0x30)
|
||||
at *%(basename)s:{NUMBER}:16
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at main (wasm://wasm/c6021c96:wasm-function[0]:0x22)
|
||||
at main (wasm://wasm/d578b3d2:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at main (wasm://wasm/c6021c96:wasm-function[0]:0x22)
|
||||
at main (wasm://wasm/d578b3d2:wasm-function[0]:0x22)
|
||||
at test/message/wasm-function-name-async.js:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at test/message/wasm-module-and-function-name-async.js:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at *%(basename)s:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at test-module.main (wasm://wasm/test-module-e77350aa:wasm-function[0]:0x22)
|
||||
at test-module.main (wasm://wasm/test-module-712dabfa:wasm-function[0]:0x22)
|
||||
at test/message/wasm-module-name-async.js:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
2
deps/v8/test/message/wasm-no-name-async.out
vendored
2
deps/v8/test/message/wasm-no-name-async.out
vendored
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at wasm://wasm/e5b00f2a:wasm-function[0]:0x22
|
||||
at wasm://wasm/44ee3bce:wasm-function[0]:0x22
|
||||
at *%(basename)s:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
RuntimeError: unreachable
|
||||
at wasm://wasm/e5b00f2a:wasm-function[0]:0x22
|
||||
at wasm://wasm/44ee3bce:wasm-function[0]:0x22
|
||||
at test/message/wasm-no-name-async.js:{NUMBER}:27
|
||||
at test/mjsunit/mjsunit.js:*
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
// Copyright 2025 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
let o = {}
|
||||
for (var i = 0; i < 10000; i++) {
|
||||
o[8589933568 + i] = i;
|
||||
}
|
||||
for (var i = 0; i < 10000; i++) {
|
||||
assertEquals(o[8589933568 + i], i);
|
||||
}
|
18
deps/v8/test/mjsunit/wasm/stack.js
vendored
18
deps/v8/test/mjsunit/wasm/stack.js
vendored
|
@ -69,7 +69,7 @@ var module = builder.instantiate({mod: {func: STACK}});
|
|||
var expected_string = 'Error\n' +
|
||||
// The line numbers below will change as this test gains / loses lines..
|
||||
' at STACK (stack.js:38:11)\n' + // --
|
||||
' at main (wasm://wasm/16d24f76:wasm-function[1]:0x72)\n' + // --
|
||||
' at main (wasm://wasm/862e1cf6:wasm-function[1]:0x72)\n' + // --
|
||||
' at testSimpleStack (stack.js:76:18)\n' + // --
|
||||
' at stack.js:78:3'; // --
|
||||
|
||||
|
@ -89,7 +89,7 @@ Error.prepareStackTrace = function(error, frames) {
|
|||
verifyStack(stack, [
|
||||
// isWasm function line pos file offset funcIndex
|
||||
[ false, "STACK", 38, 0, "stack.js"],
|
||||
[ true, "main", 1, 0x72, "wasm://wasm/16d24f76", '0x72', 1],
|
||||
[ true, "main", 1, 0x72, "wasm://wasm/862e1cf6", '0x72', 1],
|
||||
[ false, "testStackFrames", 87, 0, "stack.js"],
|
||||
[ false, null, 96, 0, "stack.js"]
|
||||
]);
|
||||
|
@ -103,7 +103,7 @@ Error.prepareStackTrace = function(error, frames) {
|
|||
assertContains("unreachable", e.message);
|
||||
verifyStack(e.stack, [
|
||||
// isWasm function line pos file offset funcIndex
|
||||
[ true, "exec_unreachable", 1, 0x77, "wasm://wasm/16d24f76", '0x77', 2],
|
||||
[ true, "exec_unreachable", 1, 0x77, "wasm://wasm/862e1cf6", '0x77', 2],
|
||||
[ false, "testWasmUnreachable", 100, 0, "stack.js"],
|
||||
[ false, null, 111, 0, "stack.js"]
|
||||
]);
|
||||
|
@ -118,8 +118,8 @@ Error.prepareStackTrace = function(error, frames) {
|
|||
assertContains("out of bounds", e.message);
|
||||
verifyStack(e.stack, [
|
||||
// isWasm function line pos file offset funcIndex
|
||||
[ true, null, 1, 0x7d, "wasm://wasm/16d24f76", '0x7d', 3],
|
||||
[ true, "call_mem_out_of_bounds", 1, 0x83, "wasm://wasm/16d24f76", '0x83', 4],
|
||||
[ true, null, 1, 0x7d, "wasm://wasm/862e1cf6", '0x7d', 3],
|
||||
[ true, "call_mem_out_of_bounds", 1, 0x83, "wasm://wasm/862e1cf6", '0x83', 4],
|
||||
[ false, "testWasmMemOutOfBounds", 115, 0, "stack.js"],
|
||||
[ false, null, 127, 0, "stack.js"]
|
||||
]);
|
||||
|
@ -147,10 +147,10 @@ Error.prepareStackTrace = function(error, frames) {
|
|||
assertTrue(e.stack.length >= 4, "expected at least 4 stack entries");
|
||||
verifyStack(e.stack.splice(0, 4), [
|
||||
// isWasm function line pos file offset funcIndex
|
||||
[ true, "recursion", 1, 0x34, "wasm://wasm/ad7a0826", '0x34', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/ad7a0826", '0x37', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/ad7a0826", '0x37', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/ad7a0826", '0x37', 0]
|
||||
[ true, "recursion", 1, 0x34, "wasm://wasm/80a35e5a", '0x34', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/80a35e5a", '0x37', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/80a35e5a", '0x37', 0],
|
||||
[ true, "recursion", 1, 0x37, "wasm://wasm/80a35e5a", '0x37', 0]
|
||||
]);
|
||||
}
|
||||
})();
|
||||
|
|
34
deps/v8/third_party/rapidhash-v8/LICENSE
vendored
34
deps/v8/third_party/rapidhash-v8/LICENSE
vendored
|
@ -1,34 +0,0 @@
|
|||
/*
|
||||
* rapidhash - Very fast, high quality, platform independant hashing algorithm.
|
||||
* Copyright (C) 2024 Nicolas De Carli
|
||||
*
|
||||
* Based on 'wyhash', by Wang Yi <godspeed_china@yeah.net>
|
||||
*
|
||||
* BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You can contact the author at:
|
||||
* - rapidhash source repository: https://github.com/Nicoshev/rapidhash
|
||||
*/
|
2
deps/v8/third_party/rapidhash-v8/OWNERS
vendored
2
deps/v8/third_party/rapidhash-v8/OWNERS
vendored
|
@ -1,2 +0,0 @@
|
|||
leszeks@chromium.org
|
||||
mlippautz@chromium.org
|
20
deps/v8/third_party/rapidhash-v8/README.chromium
vendored
20
deps/v8/third_party/rapidhash-v8/README.chromium
vendored
|
@ -1,20 +0,0 @@
|
|||
Name: rapidhash
|
||||
URL: https://github.com/Nicoshev/rapidhash/blob/master/rapidhash.h
|
||||
Version: N/A
|
||||
Date: 2024-07-08
|
||||
Revision: 588978411df8683777429f729be5213eb1bfd5f3
|
||||
License: BSD 2-clause
|
||||
License File: LICENSE
|
||||
Shipped: Yes
|
||||
Security Critical: yes
|
||||
|
||||
Description:
|
||||
A fast hash function.
|
||||
|
||||
This is a fork of upstream, with the parts that we don't need or want
|
||||
removed. We do not intend to sync regularly with upstream git. This
|
||||
particular version is copied over from Chromium.
|
||||
|
||||
Local Modifications:
|
||||
- Copied over from Chromium's third_party/rapidhash with all its changes.
|
||||
- Removed base/ includes and replaced with V8 versions.
|
354
deps/v8/third_party/rapidhash-v8/rapidhash.h
vendored
354
deps/v8/third_party/rapidhash-v8/rapidhash.h
vendored
|
@ -1,354 +0,0 @@
|
|||
/*
|
||||
* rapidhash - Very fast, high quality, platform-independent hashing algorithm.
|
||||
* Copyright (C) 2024 Nicolas De Carli
|
||||
*
|
||||
* Based on 'wyhash', by Wang Yi <godspeed_china@yeah.net>
|
||||
*
|
||||
* BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You can contact the author at:
|
||||
* - rapidhash source repository: https://github.com/Nicoshev/rapidhash
|
||||
*/
|
||||
|
||||
#ifndef _THIRD_PARTY_RAPIDHASH_H
|
||||
#define _THIRD_PARTY_RAPIDHASH_H 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
|
||||
#include "include/v8config.h"
|
||||
#include "src/base/logging.h"
|
||||
|
||||
// Chromium has some local modifications to upstream rapidhash,
|
||||
// mostly around the concept of HashReaders (including slightly
|
||||
// more comments for ease of understanding). Generally, rapidhash
|
||||
// hashes bytes without really caring what these bytes are,
|
||||
// but often in Chromium, we want to hash _strings_, and strings
|
||||
// can have multiple representations. In particular, the WTF
|
||||
// StringImpl class (and by extension, String and AtomicString)
|
||||
// can have three different states:
|
||||
//
|
||||
// 1. Latin1 (or ASCII) code points, in 8 bits per character (LChar).
|
||||
// 2. The same code points, in 16 bits per character (UChar).
|
||||
// 3. Strings actually including non-Latin1 code points, in 16 bits
|
||||
// per character (UChar, UTF-16 encoding).
|
||||
//
|
||||
// The problem is that we'd like to hash case #1 and #2 to actually
|
||||
// return the same hash. There are several ways we could deal with this:
|
||||
//
|
||||
// a) Just ignore the problem and hash everything as raw bytes;
|
||||
// case #2 is fairly rare, and some algorithms (e.g. opportunistic
|
||||
// deduplication) could live with some false negatives.
|
||||
// b) Expand all strings to UTF-16 before hashing. This was the
|
||||
// strategy for the old StringHasher (using SuperFastHash),
|
||||
// as it naturally worked in 16-bit increments and it is probably
|
||||
// the simplest. However, this both halves the throughput of the
|
||||
// hasher and incurs conversion costs.
|
||||
// c) Detect #2 and convert those cases to #1 (UTF-16 to Latin1
|
||||
// conversion), and apart from that, juts hash bytes.
|
||||
//
|
||||
// b) is used in e.g. CaseFoldingHash, but c) is the one we use the most
|
||||
// often. Most strings that we want to hash are 8-bit (e.g. HTML tags), so
|
||||
// that makes the common case fast. And for UChar strings, it is fairly fast
|
||||
// to make a pre-pass over the string to check for the existence of any
|
||||
// non-Latin1 characters. Of course, #1 and #3 can just be hashed as raw
|
||||
// bytes, as strings from those groups can never be equal anyway.
|
||||
//
|
||||
// To support these 8-to-16 and 16-to-8 conversions, and also things like
|
||||
// lowercasing on the fly, we have modified rapidhash to be templatized
|
||||
// on a HashReader, supplying bytes to the hash function. For the default
|
||||
// case of just hashing raw bytes, this is simply reading. But for other
|
||||
// conversions, the reader is doing slightly more work, such as packing
|
||||
// or unpacking. See e.g. ConvertTo8BitHashReader in string_hasher.h.
|
||||
//
|
||||
// Note that this reader could be made constexpr if we needed to evaluate
|
||||
// hashes at compile-time.
|
||||
struct PlainHashReader {
|
||||
// If this is different from 1 (only 1, 2 and 4 are really reasonable
|
||||
// options), it means the reader consumes its input at a faster rate than
|
||||
// would be normally expected. For instance, if it is 2, it means that when
|
||||
// the reader produces 64 bits, it needs to move its input 128 bits
|
||||
// ahead. This is used when e.g. a reader converts from UTF-16 to ASCII,
|
||||
// by removing zeros. The input length must divide the compression factor.
|
||||
static constexpr unsigned kCompressionFactor = 1;
|
||||
|
||||
// This is the opposite of kExpansionFactor. It does not make sense to have
|
||||
// both kCompressionFactor and kExpansionFactor different from 1.
|
||||
// The output length must divide the expansion factor.
|
||||
static constexpr unsigned kExpansionFactor = 1;
|
||||
|
||||
// Read 64 little-endian bits from the input, taking into account
|
||||
// the expansion/compression if relevant. Unaligned reads must be
|
||||
// supported.
|
||||
static inline uint64_t Read64(const uint8_t* p) {
|
||||
uint64_t v;
|
||||
#ifdef V8_TARGET_BIG_ENDIAN
|
||||
uint8_t* dst = reinterpret_cast<uint8_t*>(&v);
|
||||
for (size_t i = 0; i < sizeof(v); i++) {
|
||||
dst[i] = p[sizeof(v) - i - 1];
|
||||
}
|
||||
#else
|
||||
memcpy(&v, p, 8);
|
||||
#endif
|
||||
return v;
|
||||
}
|
||||
|
||||
// Similarly, read 32 little-endian (unaligned) bits. Note that
|
||||
// this must return uint64_t, _not_ uint32_t, as the hasher assumes
|
||||
// it can freely shift such numbers up and down.
|
||||
static inline uint64_t Read32(const uint8_t* p) {
|
||||
uint32_t v;
|
||||
#ifdef V8_TARGET_BIG_ENDIAN
|
||||
uint8_t* dst = reinterpret_cast<uint8_t*>(&v);
|
||||
for (size_t i = 0; i < sizeof(v); i++) {
|
||||
dst[i] = p[sizeof(v) - i - 1];
|
||||
}
|
||||
#else
|
||||
memcpy(&v, p, 4);
|
||||
#endif
|
||||
return v;
|
||||
}
|
||||
|
||||
// Read 1, 2 or 3 bytes from the input, and distribute them somewhat
|
||||
// reasonably across the resulting 64-bit number. Note that this is
|
||||
// done in a branch-free fashion, so that it always reads three bytes
|
||||
// but never reads past the end.
|
||||
//
|
||||
// This is only used in the case where we hash a string of exactly
|
||||
// 1, 2 or 3 bytes; if the hash is e.g. 7 bytes, two overlapping 32-bit
|
||||
// reads will be done instead. Note that if you have kCompressionFactor == 2,
|
||||
// this means that this will only ever be called with k = 2.
|
||||
static inline uint64_t ReadSmall(const uint8_t* p, size_t k) {
|
||||
return (uint64_t{p[0]} << 56) | (uint64_t{p[k >> 1]} << 32) | p[k - 1];
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Likely and unlikely macros.
|
||||
*/
|
||||
#define _likely_(x) __builtin_expect(x, 1)
|
||||
#define _unlikely_(x) __builtin_expect(x, 0)
|
||||
|
||||
/*
|
||||
* Default seed.
|
||||
*/
|
||||
static constexpr uint64_t RAPID_SEED = 0xbdd89aa982704029ull;
|
||||
|
||||
// Default secret parameters. If we wanted to, we could generate our own
|
||||
// versions of these at renderer startup in order to perturb the hash
|
||||
// and make it more DoS-resistant (similar to what base/hash.h does),
|
||||
// but generating new ones takes a little bit of time (~200 µs on a desktop
|
||||
// machine as of 2024), and good-quality random numbers may not be copious
|
||||
// from within the sandbox. The secret concept is inherited from wyhash,
|
||||
// described by the wyhash author here:
|
||||
//
|
||||
// https://github.com/wangyi-fudan/wyhash/issues/139
|
||||
//
|
||||
// The rules are:
|
||||
//
|
||||
// 1. Each byte must be “balanced”, i.e., have exactly 4 bits set.
|
||||
// (This is trivially done by just precompting a LUT with the
|
||||
// possible bytes and picking from those.)
|
||||
//
|
||||
// 2. Each 64-bit group should have a Hamming distance of 32 to
|
||||
// all the others (i.e., popcount(secret[i] ^ secret[j]) == 32).
|
||||
// This is just done by rejection sampling.
|
||||
//
|
||||
// 3. Each 64-bit group should be prime. It's not obvious that this
|
||||
// is really needed for the hash, as opposed to wyrand which also
|
||||
// uses the same secret, but according to the author, it is
|
||||
// “a feeling to be perfect”. This naturally means the last byte
|
||||
// cannot be divisible by 2, but apart from that, is easiest
|
||||
// checked by testing a few small factors and then the Miller-Rabin
|
||||
// test, which rejects nearly all bad candidates in the first iteration
|
||||
// and is fast as long as we have 64x64 -> 128 bit muls and modulos.
|
||||
//
|
||||
// For now, we just use the rapidhash-supplied standard.
|
||||
static constexpr uint64_t rapid_secret[3] = {
|
||||
0x2d358dccaa6c78a5ull, 0x8bb84b93962eacc9ull, 0x4b33a62ed433d4a3ull};
|
||||
|
||||
/*
|
||||
* 64*64 -> 128bit multiply function.
|
||||
*
|
||||
* @param A Address of 64-bit number.
|
||||
* @param B Address of 64-bit number.
|
||||
*
|
||||
* Calculates 128-bit C = *A * *B.
|
||||
*/
|
||||
inline std::pair<uint64_t, uint64_t> rapid_mul128(uint64_t A, uint64_t B) {
|
||||
#if defined(__SIZEOF_INT128__)
|
||||
__uint128_t r = A;
|
||||
r *= B;
|
||||
return {static_cast<uint64_t>(r), static_cast<uint64_t>(r >> 64)};
|
||||
#else
|
||||
// High and low 32 bits of A and B.
|
||||
uint64_t a_high = A >> 32, b_high = B >> 32, a_low = (uint32_t)A,
|
||||
b_low = (uint32_t)B;
|
||||
|
||||
// Intermediate products.
|
||||
uint64_t result_high = a_high * b_high;
|
||||
uint64_t result_m0 = a_high * b_low;
|
||||
uint64_t result_m1 = b_high * a_low;
|
||||
uint64_t result_low = a_low * b_low;
|
||||
|
||||
// Final sum. The lower 64-bit addition can overflow twice,
|
||||
// so accumulate carry as we go.
|
||||
uint64_t high = result_high + (result_m0 >> 32) + (result_m1 >> 32);
|
||||
uint64_t t = result_low + (result_m0 << 32);
|
||||
high += (t < result_low); // Carry.
|
||||
uint64_t low = t + (result_m1 << 32);
|
||||
high += (low < t); // Carry.
|
||||
|
||||
return {low, high};
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Multiply and xor mix function.
|
||||
*
|
||||
* @param A 64-bit number.
|
||||
* @param B 64-bit number.
|
||||
*
|
||||
* Calculates 128-bit C = A * B.
|
||||
* Returns 64-bit xor between high and low 64 bits of C.
|
||||
*/
|
||||
inline uint64_t rapid_mix(uint64_t A, uint64_t B) {
|
||||
std::tie(A, B) = rapid_mul128(A, B);
|
||||
return A ^ B;
|
||||
}
|
||||
|
||||
/*
|
||||
* rapidhash main function.
|
||||
*
|
||||
* @param key Buffer to be hashed.
|
||||
* @param len Number of input bytes coming from the reader.
|
||||
* @param seed 64-bit seed used to alter the hash result predictably.
|
||||
* @param secret Triplet of 64-bit secrets used to alter hash result
|
||||
* predictably.
|
||||
*
|
||||
* Returns a 64-bit hash.
|
||||
*
|
||||
* The data flow is separated so that we never mix input data with pointers;
|
||||
*
|
||||
* a, b, seed, secret[0], secret[1], secret[2], see1 and see2 are affected
|
||||
* by the input data.
|
||||
*
|
||||
* p is only ever indexed by len, delta (comes from len only), i (comes from
|
||||
* len only) or integral constants. len is const, so no data can flow into it.
|
||||
*
|
||||
* No other reads from memory take place. No writes to memory take place.
|
||||
*/
|
||||
template <class Reader>
|
||||
V8_INLINE uint64_t rapidhash_internal(const uint8_t* p, const size_t len,
|
||||
uint64_t seed, const uint64_t secret[3]) {
|
||||
// For brevity.
|
||||
constexpr unsigned x = Reader::kCompressionFactor;
|
||||
constexpr unsigned y = Reader::kExpansionFactor;
|
||||
DCHECK_EQ(len % y, 0u);
|
||||
|
||||
seed ^= rapid_mix(seed ^ secret[0], secret[1]) ^ len;
|
||||
uint64_t a, b;
|
||||
if (_likely_(len <= 16)) {
|
||||
if (_likely_(len >= 4)) {
|
||||
// Read the first and last 32 bits (they may overlap).
|
||||
const uint8_t* plast = p + (len - 4) * x / y;
|
||||
a = (Reader::Read32(p) << 32) | Reader::Read32(plast);
|
||||
|
||||
// This is equivalent to: delta = (len >= 8) ? 4 : 0;
|
||||
const uint64_t delta = ((len & 24) >> (len >> 3)) * x / y;
|
||||
b = ((Reader::Read32(p + delta) << 32) | Reader::Read32(plast - delta));
|
||||
} else if (_likely_(len > 0)) {
|
||||
// 1, 2 or 3 bytes.
|
||||
a = Reader::ReadSmall(p, len);
|
||||
b = 0;
|
||||
} else {
|
||||
a = b = 0;
|
||||
}
|
||||
} else {
|
||||
size_t i = len;
|
||||
if (_unlikely_(i > 48)) {
|
||||
uint64_t see1 = seed, see2 = seed;
|
||||
do {
|
||||
seed = rapid_mix(Reader::Read64(p) ^ secret[0],
|
||||
Reader::Read64(p + 8 * x / y) ^ seed);
|
||||
see1 = rapid_mix(Reader::Read64(p + 16 * x / y) ^ secret[1],
|
||||
Reader::Read64(p + 24 * x / y) ^ see1);
|
||||
see2 = rapid_mix(Reader::Read64(p + 32 * x / y) ^ secret[2],
|
||||
Reader::Read64(p + 40 * x / y) ^ see2);
|
||||
p += 48 * x / y;
|
||||
i -= 48;
|
||||
} while (_likely_(i >= 48));
|
||||
seed ^= see1 ^ see2;
|
||||
}
|
||||
if (i > 16) {
|
||||
seed = rapid_mix(Reader::Read64(p) ^ secret[2],
|
||||
Reader::Read64(p + 8 * x / y) ^ seed ^ secret[1]);
|
||||
if (i > 32) {
|
||||
seed = rapid_mix(Reader::Read64(p + 16 * x / y) ^ secret[2],
|
||||
Reader::Read64(p + 24 * x / y) ^ seed);
|
||||
}
|
||||
}
|
||||
|
||||
// Read the last 2x64 bits. Note that due to the division by y,
|
||||
// this must be a signed quantity (or the division would become
|
||||
// unsigned, possibly moving the sign bit down into the address).
|
||||
// Similarly for x.
|
||||
a = Reader::Read64(p + (static_cast<ptrdiff_t>(i) - 16) *
|
||||
static_cast<int>(x) / static_cast<int>(y));
|
||||
b = Reader::Read64(p + (static_cast<ptrdiff_t>(i) - 8) *
|
||||
static_cast<int>(x) / static_cast<int>(y));
|
||||
}
|
||||
a ^= secret[1];
|
||||
b ^= seed;
|
||||
std::tie(a, b) = rapid_mul128(a, b);
|
||||
return rapid_mix(a ^ secret[0] ^ len, b ^ secret[1]);
|
||||
}
|
||||
|
||||
/*
|
||||
* rapidhash default seeded hash function.
|
||||
*
|
||||
* @param key Buffer to be hashed.
|
||||
* @param len Number of input bytes coming from the reader.
|
||||
* @param seed 64-bit seed used to alter the hash result predictably.
|
||||
*
|
||||
* Calls rapidhash_internal using provided parameters and default secrets.
|
||||
*
|
||||
* Returns a 64-bit hash.
|
||||
*/
|
||||
template <class Reader = PlainHashReader>
|
||||
V8_INLINE static uint64_t rapidhash(const uint8_t* key, size_t len,
|
||||
uint64_t seed = RAPID_SEED) {
|
||||
return rapidhash_internal<Reader>(key, len, seed, rapid_secret);
|
||||
}
|
||||
|
||||
#undef _likely_
|
||||
#undef _unlikely_
|
||||
|
||||
#endif // _THIRD_PARTY_RAPIDHASH_H
|
1
deps/v8/tools/gcmole/BUILD.gn
vendored
1
deps/v8/tools/gcmole/BUILD.gn
vendored
|
@ -41,7 +41,6 @@ if (v8_gcmole) {
|
|||
"../../third_party/icu/source/i18n/",
|
||||
"../../third_party/inspector_protocol/",
|
||||
"../../third_party/libc++/src/",
|
||||
"../../third_party/rapidhash-v8/",
|
||||
"../../third_party/simdutf/",
|
||||
"../../third_party/siphash/",
|
||||
"../../third_party/utf8-decoder/",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue