Changeset 148639 in webkit for trunk/Source/JavaScriptCore/interpreter
- Timestamp:
- Apr 17, 2013, 3:37:45 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp
r147872 r148639 768 768 JSObject* errorObject = asObject(error); 769 769 JSGlobalObject* globalObject = 0; 770 if (isTerminatedExecutionException(error) || isInterruptedExecutionException(error))770 if (isTerminatedExecutionException(error)) 771 771 globalObject = globalData->dynamicGlobalObject; 772 772 else … … 789 789 { 790 790 CodeBlock* codeBlock = callFrame->codeBlock(); 791 bool is Interrupt= false;791 bool isTermination = false; 792 792 793 793 ASSERT(!exceptionValue.isEmpty()); … … 811 811 } 812 812 813 is Interrupt = isInterruptedExecutionException(exception) ||isTerminatedExecutionException(exception);813 isTermination = isTerminatedExecutionException(exception); 814 814 } else { 815 815 if (!callFrame->globalData().exceptionStack.size()) { … … 828 828 // Calculate an exception handler vPC, unwinding call frames as necessary. 829 829 HandlerInfo* handler = 0; 830 while (is Interrupt|| !(handler = codeBlock->handlerForBytecodeOffset(bytecodeOffset))) {830 while (isTermination || !(handler = codeBlock->handlerForBytecodeOffset(bytecodeOffset))) { 831 831 if (!unwindCallFrame(callFrame, exceptionValue, bytecodeOffset, codeBlock)) { 832 832 if (LegacyProfiler* profiler = callFrame->globalData().enabledProfiler()) … … 1031 1031 // Execute the code: 1032 1032 JSValue result; 1033 {1033 if (LIKELY(!globalData.watchdog.didFire(newCallFrame))) { 1034 1034 SamplingTool::CallRecord callRecord(m_sampler.get()); 1035 Watchdog::Scope watchdogScope(globalData.watchdog); 1035 1036 1036 1037 #if ENABLE(LLINT_C_LOOP) … … 1039 1040 result = program->generatedJITCode().execute(&m_stack, newCallFrame, &globalData); 1040 1041 #endif // ENABLE(JIT) 1041 } 1042 } else 1043 result = throwTerminatedExecutionException(newCallFrame); 1042 1044 1043 1045 if (LegacyProfiler* profiler = globalData.enabledProfiler()) … … 1101 1103 1102 1104 JSValue result; 1103 {1105 if (LIKELY(!globalData.watchdog.didFire(newCallFrame))) { 1104 1106 SamplingTool::CallRecord callRecord(m_sampler.get(), !isJSCall); 1107 Watchdog::Scope watchdogScope(globalData.watchdog); 1105 1108 1106 1109 // Execute the code: … … 1113 1116 } else 1114 1117 result = JSValue::decode(callData.native.function(newCallFrame)); 1115 } 1118 } else 1119 result = throwTerminatedExecutionException(newCallFrame); 1116 1120 1117 1121 if (LegacyProfiler* profiler = globalData.enabledProfiler()) … … 1176 1180 1177 1181 JSValue result; 1178 {1182 if (LIKELY(!globalData.watchdog.didFire(newCallFrame))) { 1179 1183 SamplingTool::CallRecord callRecord(m_sampler.get(), !isJSConstruct); 1184 Watchdog::Scope watchdogScope(globalData.watchdog); 1180 1185 1181 1186 // Execute the code. … … 1186 1191 result = constructData.js.functionExecutable->generatedJITCodeForConstruct().execute(&m_stack, newCallFrame, &globalData); 1187 1192 #endif // ENABLE(JIT) 1188 } else {1193 } else 1189 1194 result = JSValue::decode(constructData.native.function(newCallFrame)); 1190 }1191 }1195 } else 1196 result = throwTerminatedExecutionException(newCallFrame); 1192 1197 1193 1198 if (LegacyProfiler* profiler = globalData.enabledProfiler()) … … 1273 1278 // Execute the code: 1274 1279 JSValue result; 1275 {1280 if (LIKELY(!globalData.watchdog.didFire(closure.newCallFrame))) { 1276 1281 SamplingTool::CallRecord callRecord(m_sampler.get()); 1277 1282 Watchdog::Scope watchdogScope(globalData.watchdog); 1283 1278 1284 #if ENABLE(LLINT_C_LOOP) 1279 1285 result = LLInt::CLoop::execute(closure.newCallFrame, llint_function_for_call_prologue); … … 1281 1287 result = closure.functionExecutable->generatedJITCodeForCall().execute(&m_stack, closure.newCallFrame, &globalData); 1282 1288 #endif // ENABLE(JIT) 1283 } 1289 } else 1290 result = throwTerminatedExecutionException(closure.newCallFrame); 1284 1291 1285 1292 if (LegacyProfiler* profiler = globalData.enabledProfiler()) … … 1369 1376 // Execute the code: 1370 1377 JSValue result; 1371 {1378 if (LIKELY(!globalData.watchdog.didFire(newCallFrame))) { 1372 1379 SamplingTool::CallRecord callRecord(m_sampler.get()); 1373 1380 Watchdog::Scope watchdogScope(globalData.watchdog); 1381 1374 1382 #if ENABLE(LLINT_C_LOOP) 1375 1383 result = LLInt::CLoop::execute(newCallFrame, llint_eval_prologue); … … 1377 1385 result = eval->generatedJITCode().execute(&m_stack, newCallFrame, &globalData); 1378 1386 #endif // ENABLE(JIT) 1379 } 1387 } else 1388 result = throwTerminatedExecutionException(newCallFrame); 1380 1389 1381 1390 if (LegacyProfiler* profiler = globalData.enabledProfiler())
Note:
See TracChangeset
for help on using the changeset viewer.