Changeset 271114 in webkit


Ignore:
Timestamp:
Dec 30, 2020 7:20:30 PM (less than one hour ago)
Author:
ysuzuki@apple.com
Message:

Unreviewed, fix iteration count check
https://bugs.webkit.org/show_bug.cgi?id=220206

JSTests:

  • wasm/stress/multivalue-iteration-count.js: Added.

(async let):

Source/JavaScriptCore:

We should have iterationCount variable to track iteration count since it can be larger than MarkedArgumentBuffer's size.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

Location:
trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r271112 r271114  
     12020-12-30  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        Unreviewed, fix iteration count check
     4        https://bugs.webkit.org/show_bug.cgi?id=220206
     5
     6        * wasm/stress/multivalue-iteration-count.js: Added.
     7        (async let):
     8
    192020-12-29  Yusuke Suzuki  <ysuzuki@apple.com>
    210
  • trunk/Source/JavaScriptCore/ChangeLog

    r271113 r271114  
     12020-12-30  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        Unreviewed, fix iteration count check
     4        https://bugs.webkit.org/show_bug.cgi?id=220206
     5
     6        We should have iterationCount variable to track iteration count since it can be larger than MarkedArgumentBuffer's size.
     7
     8        * wasm/WasmOperations.cpp:
     9        (JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
     10
    1112020-12-30  Yusuke Suzuki  <ysuzuki@apple.com>
    212
  • trunk/Source/JavaScriptCore/wasm/WasmOperations.cpp

    r271113 r271114  
    523523    RegisterAtOffsetList registerResultOffsets = wasmCallInfo.computeResultsOffsetList();
    524524
     525    unsigned iterationCount = 0;
    525526    MarkedArgumentBuffer buffer;
    526527    forEachInIterable(globalObject, result, [&] (VM&, JSGlobalObject*, JSValue value) -> void {
    527528        if (buffer.size() < signature->returnCount())
    528529            buffer.append(value);
     530        ++iterationCount;
    529531    });
    530532    RETURN_IF_EXCEPTION(scope, void());
     
    535537    }
    536538
    537     if (buffer.size() != signature->returnCount()) {
     539    if (iterationCount != signature->returnCount()) {
    538540        throwVMTypeError(globalObject, scope, "Incorrect number of values returned to Wasm from JS");
    539541        return;
Note: See TracChangeset for help on using the changeset viewer.