Changeset 35022 in webkit for trunk/JavaScriptCore/kjs/Error.cpp
- Timestamp:
- Jul 5, 2008, 10:26:58 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/Error.cpp
r35008 r35022 34 34 namespace KJS { 35 35 36 JSObject* Error::create(ExecState* exec, ErrorType errtype, const UString& message, 37 int lineno, int sourceId, const UString& sourceURL) 36 JSObject* Error::create(ExecState* exec, ErrorType type, const UString& message, int lineNumber, int sourceId, const UString& sourceURL) 38 37 { 39 JSObject* cons;40 const char* name;41 switch (errtype) {42 case EvalError:43 cons= exec->lexicalGlobalObject()->evalErrorConstructor();44 name = "Evaluation error";45 break;46 case RangeError:47 cons= exec->lexicalGlobalObject()->rangeErrorConstructor();48 name = "Range error";49 break;50 case ReferenceError:51 cons= exec->lexicalGlobalObject()->referenceErrorConstructor();52 name = "Reference error";53 break;54 case SyntaxError:55 cons= exec->lexicalGlobalObject()->syntaxErrorConstructor();56 name = "Syntax error";57 break;58 case TypeError:59 cons= exec->lexicalGlobalObject()->typeErrorConstructor();60 name = "Type error";61 break;62 case URIError:63 cons= exec->lexicalGlobalObject()->URIErrorConstructor();64 name = "URI error";65 break;66 default:67 cons= exec->lexicalGlobalObject()->errorConstructor();68 name = "Error";69 break;70 }38 JSObject* constructor; 39 const char* name; 40 switch (type) { 41 case EvalError: 42 constructor = exec->lexicalGlobalObject()->evalErrorConstructor(); 43 name = "Evaluation error"; 44 break; 45 case RangeError: 46 constructor = exec->lexicalGlobalObject()->rangeErrorConstructor(); 47 name = "Range error"; 48 break; 49 case ReferenceError: 50 constructor = exec->lexicalGlobalObject()->referenceErrorConstructor(); 51 name = "Reference error"; 52 break; 53 case SyntaxError: 54 constructor = exec->lexicalGlobalObject()->syntaxErrorConstructor(); 55 name = "Syntax error"; 56 break; 57 case TypeError: 58 constructor = exec->lexicalGlobalObject()->typeErrorConstructor(); 59 name = "Type error"; 60 break; 61 case URIError: 62 constructor = exec->lexicalGlobalObject()->URIErrorConstructor(); 63 name = "URI error"; 64 break; 65 default: 66 constructor = exec->lexicalGlobalObject()->errorConstructor(); 67 name = "Error"; 68 break; 69 } 71 70 72 ArgList args;73 if (message.isEmpty())74 args.append(jsString(exec, name));75 else76 args.append(jsString(exec, message));77 ConstructData constructData;78 ConstructType constructType = cons->getConstructData(constructData);79 JSObject* err = construct(exec, cons, constructType, constructData, args);71 ArgList args; 72 if (message.isEmpty()) 73 args.append(jsString(exec, name)); 74 else 75 args.append(jsString(exec, message)); 76 ConstructData constructData; 77 ConstructType constructType = constructor->getConstructData(constructData); 78 JSObject* error = construct(exec, constructor, constructType, constructData, args); 80 79 81 if (lineno != -1) 82 err->put(exec, Identifier(exec, "line"), jsNumber(exec, lineno)); 83 if (sourceId != -1) 84 err->put(exec, Identifier(exec, "sourceId"), jsNumber(exec, sourceId)); 80 if (lineNumber != -1) 81 error->put(exec, Identifier(exec, "line"), jsNumber(exec, lineNumber)); 82 if (sourceId != -1) 83 error->put(exec, Identifier(exec, "sourceId"), jsNumber(exec, sourceId)); 84 if (!sourceURL.isNull()) 85 error->put(exec, Identifier(exec, "sourceURL"), jsString(exec, sourceURL)); 85 86 86 if(!sourceURL.isNull()) 87 err->put(exec, Identifier(exec, "sourceURL"), jsString(exec, sourceURL)); 88 89 return err; 87 return error; 90 88 } 91 89 92 JSObject *Error::create(ExecState *exec, ErrorType type, const char *message)90 JSObject* Error::create(ExecState* exec, ErrorType type, const char* message) 93 91 { 94 92 return create(exec, type, message, -1, -1, NULL); 95 93 } 96 94 97 JSObject *throwError(ExecState *exec, ErrorType type)95 JSObject* throwError(ExecState* exec, ErrorType type) 98 96 { 99 JSObject *error = Error::create(exec, type, UString(), -1, -1, NULL);97 JSObject* error = Error::create(exec, type, UString(), -1, -1, NULL); 100 98 exec->setException(error); 101 99 return error; 102 100 } 103 101 104 JSObject *throwError(ExecState *exec, ErrorType type, const UString &message)102 JSObject* throwError(ExecState* exec, ErrorType type, const UString& message) 105 103 { 106 JSObject *error = Error::create(exec, type, message, -1, -1, NULL);104 JSObject* error = Error::create(exec, type, message, -1, -1, NULL); 107 105 exec->setException(error); 108 106 return error; 109 107 } 110 108 111 JSObject *throwError(ExecState *exec, ErrorType type, const char *message)109 JSObject* throwError(ExecState* exec, ErrorType type, const char* message) 112 110 { 113 JSObject *error = Error::create(exec, type, message, -1, -1, NULL);111 JSObject* error = Error::create(exec, type, message, -1, -1, NULL); 114 112 exec->setException(error); 115 113 return error; 116 114 } 117 115 118 JSObject *throwError(ExecState *exec, ErrorType type, const UString &message, int line, int sourceId, const UString &sourceURL)116 JSObject* throwError(ExecState* exec, ErrorType type, const UString& message, int line, int sourceId, const UString& sourceURL) 119 117 { 120 JSObject *error = Error::create(exec, type, message, line, sourceId, sourceURL);118 JSObject* error = Error::create(exec, type, message, line, sourceId, sourceURL); 121 119 exec->setException(error); 122 120 return error;
Note:
See TracChangeset
for help on using the changeset viewer.