Changeset 208936 in webkit
- Timestamp:
- Nov 20, 2016 5:33:09 PM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r208935 r208936 1 2016-11-20 Mark Lam <mark.lam@apple.com> 2 3 Fix exception scope verification failures in CommonSlowPaths.cpp/h. 4 https://bugs.webkit.org/show_bug.cgi?id=164975 5 6 Reviewed by Darin Adler. 7 8 * runtime/CommonSlowPaths.cpp: 9 (JSC::SLOW_PATH_DECL): 10 * runtime/CommonSlowPaths.h: 11 (JSC::CommonSlowPaths::opIn): 12 1 13 2016-11-20 Mark Lam <mark.lam@apple.com> 2 14 -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
r208819 r208936 182 182 vm.topCallFrame = exec; 183 183 ErrorHandlingScope errorScope(vm); 184 throwScope.release(); 184 185 CommonSlowPaths::interpreterThrowInCaller(exec, createStackOverflowError(exec)); 185 186 RETURN_TWO(bitwise_cast<void*>(static_cast<uintptr_t>(1)), exec); … … 444 445 arithProfile.observeLHSAndRHS(v1, v2); 445 446 446 if (v1.isString() && !v2.isObject()) 447 result = jsString(exec, asString(v1), v2.toString(exec)); 448 else if (v1.isNumber() && v2.isNumber()) 447 if (v1.isString() && !v2.isObject()) { 448 JSString* v2String = v2.toString(exec); 449 if (LIKELY(!throwScope.exception())) 450 result = jsString(exec, asString(v1), v2String); 451 } else if (v1.isNumber() && v2.isNumber()) 449 452 result = jsNumber(v1.asNumber() + v2.asNumber()); 450 453 else … … 825 828 if (resolvedScope->isGlobalObject()) { 826 829 JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(resolvedScope); 827 if (globalObject->hasProperty(exec, ident)) { 830 bool hasProperty = globalObject->hasProperty(exec, ident); 831 CHECK_EXCEPTION(); 832 if (hasProperty) { 828 833 ConcurrentJSLocker locker(exec->codeBlock()->m_lock); 829 834 if (resolveType == UnresolvedProperty) -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h
r208761 r208936 84 84 85 85 uint32_t i; 86 if (propName.getUInt32(i)) 86 if (propName.getUInt32(i)) { 87 scope.release(); 87 88 return baseObj->hasProperty(exec, i); 89 } 88 90 89 91 auto property = propName.toPropertyKey(exec); 90 92 RETURN_IF_EXCEPTION(scope, false); 93 scope.release(); 91 94 return baseObj->hasProperty(exec, property); 92 95 }
Note: See TracChangeset
for help on using the changeset viewer.