| OLD | NEW | 
|      1 // Copyright 2012 the V8 project authors. All rights reserved. |      1 // Copyright 2012 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 3955 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   3966     bool has_pending_exception = false; |   3966     bool has_pending_exception = false; | 
|   3967     Handle<Object> converted = |   3967     Handle<Object> converted = | 
|   3968         Execution::ToString(key, &has_pending_exception); |   3968         Execution::ToString(key, &has_pending_exception); | 
|   3969     if (has_pending_exception) return Failure::Exception(); |   3969     if (has_pending_exception) return Failure::Exception(); | 
|   3970     name = Handle<Name>::cast(converted); |   3970     name = Handle<Name>::cast(converted); | 
|   3971   } |   3971   } | 
|   3972  |   3972  | 
|   3973   return isolate->heap()->ToBoolean(object->HasProperty(*name)); |   3973   return isolate->heap()->ToBoolean(object->HasProperty(*name)); | 
|   3974 } |   3974 } | 
|   3975  |   3975  | 
 |   3976 MaybeObject* Runtime::GetObjectPropertyOrFail( | 
 |   3977     Isolate* isolate, | 
 |   3978     Handle<Object> object, | 
 |   3979     Handle<Object> key) { | 
 |   3980   CALL_HEAP_FUNCTION_PASS_EXCEPTION(isolate, | 
 |   3981       GetObjectProperty(isolate, object, key)); | 
 |   3982 } | 
|   3976  |   3983  | 
|   3977 MaybeObject* Runtime::GetObjectProperty(Isolate* isolate, |   3984 MaybeObject* Runtime::GetObjectProperty(Isolate* isolate, | 
|   3978                                         Handle<Object> object, |   3985                                         Handle<Object> object, | 
|   3979                                         Handle<Object> key) { |   3986                                         Handle<Object> key) { | 
|   3980   HandleScope scope(isolate); |   3987   HandleScope scope(isolate); | 
|   3981  |   3988  | 
|   3982   if (object->IsUndefined() || object->IsNull()) { |   3989   if (object->IsUndefined() || object->IsNull()) { | 
|   3983     Handle<Object> args[2] = { key, object }; |   3990     Handle<Object> args[2] = { key, object }; | 
|   3984     Handle<Object> error = |   3991     Handle<Object> error = | 
|   3985         isolate->factory()->NewTypeError("non_object_property_load", |   3992         isolate->factory()->NewTypeError("non_object_property_load", | 
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   4250     case INTERCEPTOR: |   4257     case INTERCEPTOR: | 
|   4251     case TRANSITION: |   4258     case TRANSITION: | 
|   4252       return isolate->heap()->undefined_value(); |   4259       return isolate->heap()->undefined_value(); | 
|   4253     case NONEXISTENT: |   4260     case NONEXISTENT: | 
|   4254       UNREACHABLE(); |   4261       UNREACHABLE(); | 
|   4255   } |   4262   } | 
|   4256   return isolate->heap()->undefined_value(); |   4263   return isolate->heap()->undefined_value(); | 
|   4257 } |   4264 } | 
|   4258  |   4265  | 
|   4259  |   4266  | 
 |   4267 MaybeObject* Runtime::SetObjectPropertyOrFail( | 
 |   4268     Isolate* isolate, | 
 |   4269     Handle<Object> object, | 
 |   4270     Handle<Object> key, | 
 |   4271     Handle<Object> value, | 
 |   4272     PropertyAttributes attr, | 
 |   4273     StrictModeFlag strict_mode) { | 
 |   4274   CALL_HEAP_FUNCTION_PASS_EXCEPTION(isolate, | 
 |   4275       SetObjectProperty(isolate, object, key, value, attr, strict_mode)); | 
 |   4276 } | 
 |   4277  | 
 |   4278  | 
|   4260 MaybeObject* Runtime::SetObjectProperty(Isolate* isolate, |   4279 MaybeObject* Runtime::SetObjectProperty(Isolate* isolate, | 
|   4261                                         Handle<Object> object, |   4280                                         Handle<Object> object, | 
|   4262                                         Handle<Object> key, |   4281                                         Handle<Object> key, | 
|   4263                                         Handle<Object> value, |   4282                                         Handle<Object> value, | 
|   4264                                         PropertyAttributes attr, |   4283                                         PropertyAttributes attr, | 
|   4265                                         StrictModeFlag strict_mode) { |   4284                                         StrictModeFlag strict_mode) { | 
|   4266   SetPropertyMode set_mode = attr == NONE ? SET_PROPERTY : DEFINE_PROPERTY; |   4285   SetPropertyMode set_mode = attr == NONE ? SET_PROPERTY : DEFINE_PROPERTY; | 
|   4267   HandleScope scope(isolate); |   4286   HandleScope scope(isolate); | 
|   4268  |   4287  | 
|   4269   if (object->IsUndefined() || object->IsNull()) { |   4288   if (object->IsUndefined() || object->IsNull()) { | 
| (...skipping 8814 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  13084     // Handle last resort GC and make sure to allow future allocations |  13103     // Handle last resort GC and make sure to allow future allocations | 
|  13085     // to grow the heap without causing GCs (if possible). |  13104     // to grow the heap without causing GCs (if possible). | 
|  13086     isolate->counters()->gc_last_resort_from_js()->Increment(); |  13105     isolate->counters()->gc_last_resort_from_js()->Increment(); | 
|  13087     isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags, |  13106     isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags, | 
|  13088                                        "Runtime::PerformGC"); |  13107                                        "Runtime::PerformGC"); | 
|  13089   } |  13108   } | 
|  13090 } |  13109 } | 
|  13091  |  13110  | 
|  13092  |  13111  | 
|  13093 } }  // namespace v8::internal |  13112 } }  // namespace v8::internal | 
| OLD | NEW |