⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 286249 in webkit


Ignore:
Timestamp:
Nov 29, 2021, 11:55:59 AM (5 years ago)
Author:
ysuzuki@apple.com
Message:

[JSC] private name operation should use RETURN_IF_EXCEPTION
​https://bugs.webkit.org/show_bug.cgi?id=233577
rdar://85813869

Reviewed by Mark Lam.

JSTests:

  • stress/termination-error-in-private-name.js: Added.

(C):

Source/JavaScriptCore:

Because of TerminatedExecutionError, error can be thrown at any time.

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::putPrivateNameOptimize):
(JSC::putPrivateName):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r286228 r286249  
     12021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] private name operation should use RETURN_IF_EXCEPTION
     4        https://bugs.webkit.org/show_bug.cgi?id=233577
     5        rdar://85813869
     6
     7        Reviewed by Mark Lam.
     8
     9        * stress/termination-error-in-private-name.js: Added.
     10        (C):
     11
    1122021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r286248 r286249  
     12021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] private name operation should use RETURN_IF_EXCEPTION
     4        https://bugs.webkit.org/show_bug.cgi?id=233577
     5        rdar://85813869
     6
     7        Reviewed by Mark Lam.
     8
     9        Because of TerminatedExecutionError, error can be thrown at any time.
     10
     11        * jit/JITOperations.cpp:
     12        (JSC::JSC_DEFINE_JIT_OPERATION):
     13        (JSC::putPrivateNameOptimize):
     14        (JSC::putPrivateName):
     15        * llint/LLIntSlowPaths.cpp:
     16        (JSC::LLInt::LLINT_SLOW_PATH_DECL):
     17
    1182021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>
    219
  • trunk/Source/JavaScriptCore/jit/JITOperations.cpp

    r285795 r286249  
    529529    ASSERT(propertyValue.isSymbol());
    530530    auto property = propertyValue.toPropertyKey(globalObject);
    531     EXCEPTION_ASSERT(!scope.exception());
     531    RETURN_IF_EXCEPTION(scope, { });
    532532
    533533    PropertySlot slot(baseObject, PropertySlot::InternalMethodType::HasProperty);
    … …  
    563563    ASSERT(propertyValue.isSymbol());
    564564    auto property = propertyValue.toPropertyKey(globalObject);
    565     EXCEPTION_ASSERT(!scope.exception());
     565    RETURN_IF_EXCEPTION(scope, { });
    566566
    567567    return JSValue::encode(jsBoolean(asObject(baseValue)->hasPrivateField(globalObject, property)));
    … …  
    13251325
    13261326    auto propertyName = subscript.toPropertyKey(globalObject);
    1327     EXCEPTION_ASSERT(!scope.exception());
     1327    RETURN_IF_EXCEPTION(scope, void());
    13281328
    13291329    // Private fields can only be accessed within class lexical scope
    … …  
    13591359
    13601360    auto propertyName = subscript.toPropertyKey(globalObject);
    1361     EXCEPTION_ASSERT(!scope.exception());
     1361    RETURN_IF_EXCEPTION(scope, void());
    13621362
    13631363    scope.release();
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r285795 r286249  
    14691469    ASSERT(propertyValue.isSymbol());
    14701470    auto property = propertyValue.toPropertyKey(globalObject);
    1471     EXCEPTION_ASSERT(!throwScope.exception());
     1471    LLINT_CHECK_EXCEPTION();
    14721472
    14731473    LLINT_RETURN(jsBoolean(asObject(baseValue)->hasPrivateField(globalObject, property)));
Note: See TracChangeset for help on using the changeset viewer.