OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // ------------------------------------------------------------------- | 5 // ------------------------------------------------------------------- |
6 | 6 |
7 var $errorToString; | 7 var $errorToString; |
8 var MakeError; | 8 var MakeError; |
9 var MakeEvalError; | 9 var MakeEvalError; |
10 var MakeRangeError; | 10 var MakeRangeError; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 var Int8x16ToString; | 42 var Int8x16ToString; |
43 var InternalArray = utils.InternalArray; | 43 var InternalArray = utils.InternalArray; |
44 var internalErrorSymbol = utils.ImportNow("internal_error_symbol"); | 44 var internalErrorSymbol = utils.ImportNow("internal_error_symbol"); |
45 var ObjectDefineProperty; | 45 var ObjectDefineProperty; |
46 var ObjectToString; | 46 var ObjectToString; |
47 var stackTraceSymbol = utils.ImportNow("stack_trace_symbol"); | 47 var stackTraceSymbol = utils.ImportNow("stack_trace_symbol"); |
48 var StringCharAt; | 48 var StringCharAt; |
49 var StringIndexOf; | 49 var StringIndexOf; |
50 var StringSubstring; | 50 var StringSubstring; |
51 var SymbolToString; | 51 var SymbolToString; |
52 var ToString = utils.ImportNow("ToString"); | |
53 var Uint16x8ToString; | 52 var Uint16x8ToString; |
54 var Uint32x4ToString; | 53 var Uint32x4ToString; |
55 var Uint8x16ToString; | 54 var Uint8x16ToString; |
56 | 55 |
57 utils.Import(function(from) { | 56 utils.Import(function(from) { |
58 ArrayJoin = from.ArrayJoin; | 57 ArrayJoin = from.ArrayJoin; |
59 Bool16x8ToString = from.Bool16x8ToString; | 58 Bool16x8ToString = from.Bool16x8ToString; |
60 Bool32x4ToString = from.Bool32x4ToString; | 59 Bool32x4ToString = from.Bool32x4ToString; |
61 Bool8x16ToString = from.Bool8x16ToString; | 60 Bool8x16ToString = from.Bool8x16ToString; |
62 Float32x4ToString = from.Float32x4ToString; | 61 Float32x4ToString = from.Float32x4ToString; |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 | 161 |
163 | 162 |
164 // When formatting internally created error messages, do not | 163 // When formatting internally created error messages, do not |
165 // invoke overwritten error toString methods but explicitly use | 164 // invoke overwritten error toString methods but explicitly use |
166 // the error to string method. This is to avoid leaking error | 165 // the error to string method. This is to avoid leaking error |
167 // objects between script tags in a browser setting. | 166 // objects between script tags in a browser setting. |
168 function ToStringCheckErrorObject(obj) { | 167 function ToStringCheckErrorObject(obj) { |
169 if (CanBeSafelyTreatedAsAnErrorObject(obj)) { | 168 if (CanBeSafelyTreatedAsAnErrorObject(obj)) { |
170 return %_CallFunction(obj, ErrorToString); | 169 return %_CallFunction(obj, ErrorToString); |
171 } else { | 170 } else { |
172 return ToString(obj); | 171 return TO_STRING(obj); |
173 } | 172 } |
174 } | 173 } |
175 | 174 |
176 | 175 |
177 function ToDetailString(obj) { | 176 function ToDetailString(obj) { |
178 if (obj != null && IS_OBJECT(obj) && obj.toString === ObjectToString) { | 177 if (obj != null && IS_OBJECT(obj) && obj.toString === ObjectToString) { |
179 var constructor = obj.constructor; | 178 var constructor = obj.constructor; |
180 if (typeof constructor == "function") { | 179 if (typeof constructor == "function") { |
181 var constructorName = constructor.name; | 180 var constructorName = constructor.name; |
182 if (IS_STRING(constructorName) && constructorName !== "") { | 181 if (IS_STRING(constructorName) && constructorName !== "") { |
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 %FunctionSetInstanceClassName(f, 'Error'); | 945 %FunctionSetInstanceClassName(f, 'Error'); |
947 %AddNamedProperty(f.prototype, 'constructor', f, DONT_ENUM); | 946 %AddNamedProperty(f.prototype, 'constructor', f, DONT_ENUM); |
948 %AddNamedProperty(f.prototype, 'name', name, DONT_ENUM); | 947 %AddNamedProperty(f.prototype, 'name', name, DONT_ENUM); |
949 %SetCode(f, function(m) { | 948 %SetCode(f, function(m) { |
950 if (%_IsConstructCall()) { | 949 if (%_IsConstructCall()) { |
951 try { captureStackTrace(this, f); } catch (e) { } | 950 try { captureStackTrace(this, f); } catch (e) { } |
952 // Define all the expected properties directly on the error | 951 // Define all the expected properties directly on the error |
953 // object. This avoids going through getters and setters defined | 952 // object. This avoids going through getters and setters defined |
954 // on prototype objects. | 953 // on prototype objects. |
955 if (!IS_UNDEFINED(m)) { | 954 if (!IS_UNDEFINED(m)) { |
956 %AddNamedProperty(this, 'message', ToString(m), DONT_ENUM); | 955 %AddNamedProperty(this, 'message', TO_STRING(m), DONT_ENUM); |
957 } | 956 } |
958 } else { | 957 } else { |
959 return new f(m); | 958 return new f(m); |
960 } | 959 } |
961 }); | 960 }); |
962 %SetNativeFlag(f); | 961 %SetNativeFlag(f); |
963 return f; | 962 return f; |
964 }; | 963 }; |
965 | 964 |
966 GlobalError = DefineError(global, function Error() { }); | 965 GlobalError = DefineError(global, function Error() { }); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 "range_error_function", GlobalRangeError, | 1037 "range_error_function", GlobalRangeError, |
1039 "reference_error_function", GlobalReferenceError, | 1038 "reference_error_function", GlobalReferenceError, |
1040 "stack_overflow_boilerplate", StackOverflowBoilerplate, | 1039 "stack_overflow_boilerplate", StackOverflowBoilerplate, |
1041 "syntax_error_function", GlobalSyntaxError, | 1040 "syntax_error_function", GlobalSyntaxError, |
1042 "to_detail_string_fun", ToDetailString, | 1041 "to_detail_string_fun", ToDetailString, |
1043 "type_error_function", GlobalTypeError, | 1042 "type_error_function", GlobalTypeError, |
1044 "uri_error_function", GlobalURIError, | 1043 "uri_error_function", GlobalURIError, |
1045 ]); | 1044 ]); |
1046 | 1045 |
1047 }); | 1046 }); |
OLD | NEW |