Changeset 34020 in webkit for trunk/JavaScriptCore/kjs/object.cpp
- Timestamp:
- May 22, 2008, 1:37:35 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/object.cpp
r33979 r34020 35 35 #include <wtf/Assertions.h> 36 36 37 // maximum global call stack size. Protects against accidental or38 // malicious infinite recursions. Define to -1 if you want no limit.39 // In real-world testing it appears ok to bump the stack depth count to 500.40 // This of course is dependent on stack frame size.41 #define KJS_MAX_STACK 50042 43 #define JAVASCRIPT_CALL_TRACING 044 37 #define JAVASCRIPT_MARK_TRACING 0 45 38 46 #if JAVASCRIPT_CALL_TRACING47 static bool _traceJavaScript = false;48 49 extern "C" {50 void setTraceJavaScript(bool f)51 {52 _traceJavaScript = f;53 }54 55 static bool traceJavaScript()56 {57 return _traceJavaScript;58 }59 }60 #endif61 62 39 namespace KJS { 63 40 … … 67 44 { 68 45 ASSERT(implementsCall()); 69 70 #if KJS_MAX_STACK > 071 static int depth = 0; // sum of all extant function calls72 73 #if JAVASCRIPT_CALL_TRACING74 static bool tracing = false;75 if (traceJavaScript() && !tracing) {76 tracing = true;77 for (int i = 0; i < depth; i++)78 putchar (' ');79 printf ("*** calling: %s\n", toString(exec).ascii());80 for (int j = 0; j < args.size(); j++) {81 for (int i = 0; i < depth; i++)82 putchar (' ');83 printf ("*** arg[%d] = %s\n", j, args[j]->toString(exec).ascii());84 }85 tracing = false;86 }87 #endif88 89 if (++depth > KJS_MAX_STACK) {90 --depth;91 return throwError(exec, RangeError, "Maximum call stack size exceeded.");92 }93 #endif94 46 95 47 #if JAVASCRIPT_PROFILING … … 101 53 #if JAVASCRIPT_PROFILING 102 54 Profiler::profiler()->didExecute(exec, this); 103 #endif104 105 106 #if KJS_MAX_STACK > 0107 --depth;108 #endif109 110 #if JAVASCRIPT_CALL_TRACING111 if (traceJavaScript() && !tracing) {112 tracing = true;113 for (int i = 0; i < depth; i++)114 putchar (' ');115 printf ("*** returning: %s\n", ret->toString(exec).ascii());116 tracing = false;117 }118 55 #endif 119 56
Note:
See TracChangeset
for help on using the changeset viewer.