| OLD | NEW |
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 | 939 |
| 940 | 940 |
| 941 static Object* Runtime_DeclareContextSlot(Arguments args) { | 941 static Object* Runtime_DeclareContextSlot(Arguments args) { |
| 942 HandleScope scope; | 942 HandleScope scope; |
| 943 ASSERT(args.length() == 4); | 943 ASSERT(args.length() == 4); |
| 944 | 944 |
| 945 CONVERT_ARG_CHECKED(Context, context, 0); | 945 CONVERT_ARG_CHECKED(Context, context, 0); |
| 946 Handle<String> name(String::cast(args[1])); | 946 Handle<String> name(String::cast(args[1])); |
| 947 PropertyAttributes mode = | 947 PropertyAttributes mode = |
| 948 static_cast<PropertyAttributes>(Smi::cast(args[2])->value()); | 948 static_cast<PropertyAttributes>(Smi::cast(args[2])->value()); |
| 949 ASSERT(mode == READ_ONLY || mode == NONE); | 949 RUNTIME_ASSERT(mode == READ_ONLY || mode == NONE); |
| 950 Handle<Object> initial_value(args[3]); | 950 Handle<Object> initial_value(args[3]); |
| 951 | 951 |
| 952 // Declarations are always done in the function context. | 952 // Declarations are always done in the function context. |
| 953 context = Handle<Context>(context->fcontext()); | 953 context = Handle<Context>(context->fcontext()); |
| 954 | 954 |
| 955 int index; | 955 int index; |
| 956 PropertyAttributes attributes; | 956 PropertyAttributes attributes; |
| 957 ContextLookupFlags flags = DONT_FOLLOW_CHAINS; | 957 ContextLookupFlags flags = DONT_FOLLOW_CHAINS; |
| 958 Handle<Object> holder = | 958 Handle<Object> holder = |
| 959 context->Lookup(name, flags, &index, &attributes); | 959 context->Lookup(name, flags, &index, &attributes); |
| (...skipping 7977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8937 ASSERT(args.length() == 1); | 8937 ASSERT(args.length() == 1); |
| 8938 Handle<Object> break_point_object_arg = args.at<Object>(0); | 8938 Handle<Object> break_point_object_arg = args.at<Object>(0); |
| 8939 | 8939 |
| 8940 // Clear break point. | 8940 // Clear break point. |
| 8941 Debug::ClearBreakPoint(break_point_object_arg); | 8941 Debug::ClearBreakPoint(break_point_object_arg); |
| 8942 | 8942 |
| 8943 return Heap::undefined_value(); | 8943 return Heap::undefined_value(); |
| 8944 } | 8944 } |
| 8945 | 8945 |
| 8946 | 8946 |
| 8947 // Change the state of break on exceptions | 8947 // Change the state of break on exceptions. |
| 8948 // args[0]: boolean indicating uncaught exceptions | 8948 // args[0]: Enum value indicating whether to affect caught/uncaught exceptions. |
| 8949 // args[1]: boolean indicating on/off | 8949 // args[1]: Boolean indicating on/off. |
| 8950 static Object* Runtime_ChangeBreakOnException(Arguments args) { | 8950 static Object* Runtime_ChangeBreakOnException(Arguments args) { |
| 8951 HandleScope scope; | 8951 HandleScope scope; |
| 8952 ASSERT(args.length() == 2); | 8952 ASSERT(args.length() == 2); |
| 8953 ASSERT(args[0]->IsNumber()); | 8953 RUNTIME_ASSERT(args[0]->IsNumber()); |
| 8954 ASSERT(args[1]->IsBoolean()); | 8954 CONVERT_BOOLEAN_CHECKED(enable, args[1]); |
| 8955 | 8955 |
| 8956 // Update break point state | 8956 // If the number doesn't match an enum value, the ChangeBreakOnException |
| 8957 // function will default to affecting caught exceptions. |
| 8957 ExceptionBreakType type = | 8958 ExceptionBreakType type = |
| 8958 static_cast<ExceptionBreakType>(NumberToUint32(args[0])); | 8959 static_cast<ExceptionBreakType>(NumberToUint32(args[0])); |
| 8959 bool enable = args[1]->ToBoolean()->IsTrue(); | 8960 // Update break point state. |
| 8960 Debug::ChangeBreakOnException(type, enable); | 8961 Debug::ChangeBreakOnException(type, enable); |
| 8961 return Heap::undefined_value(); | 8962 return Heap::undefined_value(); |
| 8962 } | 8963 } |
| 8963 | 8964 |
| 8964 | 8965 |
| 8965 // Returns the state of break on exceptions | 8966 // Returns the state of break on exceptions |
| 8966 // args[0]: boolean indicating uncaught exceptions | 8967 // args[0]: boolean indicating uncaught exceptions |
| 8967 static Object* Runtime_IsBreakOnException(Arguments args) { | 8968 static Object* Runtime_IsBreakOnException(Arguments args) { |
| 8968 HandleScope scope; | 8969 HandleScope scope; |
| 8969 ASSERT(args.length() == 1); | 8970 ASSERT(args.length() == 1); |
| 8970 ASSERT(args[0]->IsNumber()); | 8971 RUNTIME_ASSERT(args[0]->IsNumber()); |
| 8971 | 8972 |
| 8972 ExceptionBreakType type = | 8973 ExceptionBreakType type = |
| 8973 static_cast<ExceptionBreakType>(NumberToUint32(args[0])); | 8974 static_cast<ExceptionBreakType>(NumberToUint32(args[0])); |
| 8974 bool result = Debug::IsBreakOnException(type); | 8975 bool result = Debug::IsBreakOnException(type); |
| 8975 return Smi::FromInt(result); | 8976 return Smi::FromInt(result); |
| 8976 } | 8977 } |
| 8977 | 8978 |
| 8978 | 8979 |
| 8979 // Prepare for stepping | 8980 // Prepare for stepping |
| 8980 // args[0]: break id for checking execution state | 8981 // args[0]: break id for checking execution state |
| (...skipping 1181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10162 } else { | 10163 } else { |
| 10163 // Handle last resort GC and make sure to allow future allocations | 10164 // Handle last resort GC and make sure to allow future allocations |
| 10164 // to grow the heap without causing GCs (if possible). | 10165 // to grow the heap without causing GCs (if possible). |
| 10165 Counters::gc_last_resort_from_js.Increment(); | 10166 Counters::gc_last_resort_from_js.Increment(); |
| 10166 Heap::CollectAllGarbage(false); | 10167 Heap::CollectAllGarbage(false); |
| 10167 } | 10168 } |
| 10168 } | 10169 } |
| 10169 | 10170 |
| 10170 | 10171 |
| 10171 } } // namespace v8::internal | 10172 } } // namespace v8::internal |
| OLD | NEW |