Changeset 192125 in webkit for trunk/Source/JavaScriptCore/jsc.cpp
- Timestamp:
- Nov 6, 2015, 7:18:32 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jsc.cpp
r191840 r192125 545 545 static EncodedJSValue JSC_HOST_CALL functionDumpBasicBlockExecutionRanges(ExecState*); 546 546 static EncodedJSValue JSC_HOST_CALL functionHasBasicBlockExecuted(ExecState*); 547 static EncodedJSValue JSC_HOST_CALL functionBasicBlockExecutionCount(ExecState*); 547 548 static EncodedJSValue JSC_HOST_CALL functionEnableExceptionFuzz(ExecState*); 548 549 static EncodedJSValue JSC_HOST_CALL functionDrainMicrotasks(ExecState*); 550 static EncodedJSValue JSC_HOST_CALL functionIs32BitPlatform(ExecState*); 549 551 #if ENABLE(WEBASSEMBLY) 550 552 static EncodedJSValue JSC_HOST_CALL functionLoadWebAssembly(ExecState*); … … 725 727 addFunction(vm, "dumpBasicBlockExecutionRanges", functionDumpBasicBlockExecutionRanges , 0); 726 728 addFunction(vm, "hasBasicBlockExecuted", functionHasBasicBlockExecuted, 2); 729 addFunction(vm, "basicBlockExecutionCount", functionBasicBlockExecutionCount, 2); 727 730 728 731 addFunction(vm, "enableExceptionFuzz", functionEnableExceptionFuzz, 0); 729 732 730 733 addFunction(vm, "drainMicrotasks", functionDrainMicrotasks, 0); 734 735 addFunction(vm, "is32BitPlatform", functionIs32BitPlatform, 0); 731 736 732 737 #if ENABLE(WEBASSEMBLY) … … 1506 1511 } 1507 1512 1513 EncodedJSValue JSC_HOST_CALL functionBasicBlockExecutionCount(ExecState* exec) 1514 { 1515 RELEASE_ASSERT(exec->vm().controlFlowProfiler()); 1516 1517 JSValue functionValue = exec->argument(0); 1518 RELEASE_ASSERT(functionValue.isFunction()); 1519 FunctionExecutable* executable = (jsDynamicCast<JSFunction*>(functionValue.asCell()->getObject()))->jsExecutable(); 1520 1521 RELEASE_ASSERT(exec->argument(1).isString()); 1522 String substring = exec->argument(1).getString(exec); 1523 String sourceCodeText = executable->source().toString(); 1524 RELEASE_ASSERT(sourceCodeText.contains(substring)); 1525 int offset = sourceCodeText.find(substring) + executable->source().startOffset(); 1526 1527 size_t executionCount = exec->vm().controlFlowProfiler()->basicBlockExecutionCountAtTextOffset(offset, executable->sourceID(), exec->vm()); 1528 return JSValue::encode(JSValue(executionCount)); 1529 } 1530 1508 1531 EncodedJSValue JSC_HOST_CALL functionEnableExceptionFuzz(ExecState*) 1509 1532 { … … 1516 1539 exec->vm().drainMicrotasks(); 1517 1540 return JSValue::encode(jsUndefined()); 1541 } 1542 1543 EncodedJSValue JSC_HOST_CALL functionIs32BitPlatform(ExecState*) 1544 { 1545 #if USE(JSVALUE64) 1546 return JSValue::encode(JSValue(JSC::JSValue::JSFalse)); 1547 #else 1548 return JSValue::encode(JSValue(JSC::JSValue::JSTrue)); 1549 #endif 1518 1550 } 1519 1551
Note:
See TracChangeset
for help on using the changeset viewer.