| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/factory.h" | 5 #include "src/factory.h" |
| 6 | 6 |
| 7 #include "src/conversions.h" | 7 #include "src/conversions.h" |
| 8 #include "src/isolate-inl.h" | 8 #include "src/isolate-inl.h" |
| 9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
| 10 | 10 |
| (...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1090 | 1090 |
| 1091 | 1091 |
| 1092 Handle<String> Factory::EmergencyNewError(const char* message, | 1092 Handle<String> Factory::EmergencyNewError(const char* message, |
| 1093 Handle<JSArray> args) { | 1093 Handle<JSArray> args) { |
| 1094 const int kBufferSize = 1000; | 1094 const int kBufferSize = 1000; |
| 1095 char buffer[kBufferSize]; | 1095 char buffer[kBufferSize]; |
| 1096 size_t space = kBufferSize; | 1096 size_t space = kBufferSize; |
| 1097 char* p = &buffer[0]; | 1097 char* p = &buffer[0]; |
| 1098 | 1098 |
| 1099 Vector<char> v(buffer, kBufferSize); | 1099 Vector<char> v(buffer, kBufferSize); |
| 1100 OS::StrNCpy(v, message, space); | 1100 StrNCpy(v, message, space); |
| 1101 space -= Min(space, strlen(message)); | 1101 space -= Min(space, strlen(message)); |
| 1102 p = &buffer[kBufferSize] - space; | 1102 p = &buffer[kBufferSize] - space; |
| 1103 | 1103 |
| 1104 for (unsigned i = 0; i < ARRAY_SIZE(args); i++) { | 1104 for (unsigned i = 0; i < ARRAY_SIZE(args); i++) { |
| 1105 if (space > 0) { | 1105 if (space > 0) { |
| 1106 *p++ = ' '; | 1106 *p++ = ' '; |
| 1107 space--; | 1107 space--; |
| 1108 if (space > 0) { | 1108 if (space > 0) { |
| 1109 Handle<String> arg_str = Handle<String>::cast( | 1109 Handle<String> arg_str = Handle<String>::cast( |
| 1110 Object::GetElement(isolate(), args, i).ToHandleChecked()); | 1110 Object::GetElement(isolate(), args, i).ToHandleChecked()); |
| 1111 SmartArrayPointer<char> arg = arg_str->ToCString(); | 1111 SmartArrayPointer<char> arg = arg_str->ToCString(); |
| 1112 Vector<char> v2(p, static_cast<int>(space)); | 1112 Vector<char> v2(p, static_cast<int>(space)); |
| 1113 OS::StrNCpy(v2, arg.get(), space); | 1113 StrNCpy(v2, arg.get(), space); |
| 1114 space -= Min(space, strlen(arg.get())); | 1114 space -= Min(space, strlen(arg.get())); |
| 1115 p = &buffer[kBufferSize] - space; | 1115 p = &buffer[kBufferSize] - space; |
| 1116 } | 1116 } |
| 1117 } | 1117 } |
| 1118 } | 1118 } |
| 1119 if (space > 0) { | 1119 if (space > 0) { |
| 1120 *p = '\0'; | 1120 *p = '\0'; |
| 1121 } else { | 1121 } else { |
| 1122 buffer[kBufferSize - 1] = '\0'; | 1122 buffer[kBufferSize - 1] = '\0'; |
| 1123 } | 1123 } |
| (...skipping 1213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2337 return Handle<Object>::null(); | 2337 return Handle<Object>::null(); |
| 2338 } | 2338 } |
| 2339 | 2339 |
| 2340 | 2340 |
| 2341 Handle<Object> Factory::ToBoolean(bool value) { | 2341 Handle<Object> Factory::ToBoolean(bool value) { |
| 2342 return value ? true_value() : false_value(); | 2342 return value ? true_value() : false_value(); |
| 2343 } | 2343 } |
| 2344 | 2344 |
| 2345 | 2345 |
| 2346 } } // namespace v8::internal | 2346 } } // namespace v8::internal |
| OLD | NEW |