| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 1887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1898 ASSERT(args.length() == 2); | 1898 ASSERT(args.length() == 2); |
| 1899 | 1899 |
| 1900 CONVERT_CHECKED(JSObject, object, args[0]); | 1900 CONVERT_CHECKED(JSObject, object, args[0]); |
| 1901 CONVERT_CHECKED(String, key, args[1]); | 1901 CONVERT_CHECKED(String, key, args[1]); |
| 1902 | 1902 |
| 1903 uint32_t index; | 1903 uint32_t index; |
| 1904 if (key->AsArrayIndex(&index)) { | 1904 if (key->AsArrayIndex(&index)) { |
| 1905 return Heap::ToBoolean(object->HasElement(index)); | 1905 return Heap::ToBoolean(object->HasElement(index)); |
| 1906 } | 1906 } |
| 1907 | 1907 |
| 1908 LookupResult result; | 1908 PropertyAttributes att = object->GetLocalPropertyAttribute(key); |
| 1909 object->LocalLookup(key, &result); | 1909 return Heap::ToBoolean(att != ABSENT && att != DONT_ENUM); |
| 1910 if (!result.IsProperty()) return Heap::false_value(); | |
| 1911 return Heap::ToBoolean(!result.IsDontEnum()); | |
| 1912 } | 1910 } |
| 1913 | 1911 |
| 1914 | 1912 |
| 1915 static Object* Runtime_GetPropertyNames(Arguments args) { | 1913 static Object* Runtime_GetPropertyNames(Arguments args) { |
| 1916 HandleScope scope; | 1914 HandleScope scope; |
| 1917 ASSERT(args.length() == 1); | 1915 ASSERT(args.length() == 1); |
| 1918 | 1916 |
| 1919 CONVERT_CHECKED(JSObject, raw_object, args[0]); | 1917 CONVERT_CHECKED(JSObject, raw_object, args[0]); |
| 1920 Handle<JSObject> object(raw_object); | 1918 Handle<JSObject> object(raw_object); |
| 1921 return *GetKeysFor(object); | 1919 return *GetKeysFor(object); |
| (...skipping 3601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5523 | 5521 |
| 5524 void Runtime::PerformGC(Object* result) { | 5522 void Runtime::PerformGC(Object* result) { |
| 5525 Failure* failure = Failure::cast(result); | 5523 Failure* failure = Failure::cast(result); |
| 5526 // Try to do a garbage collection; ignore it if it fails. The C | 5524 // Try to do a garbage collection; ignore it if it fails. The C |
| 5527 // entry stub will throw an out-of-memory exception in that case. | 5525 // entry stub will throw an out-of-memory exception in that case. |
| 5528 Heap::CollectGarbage(failure->requested(), failure->allocation_space()); | 5526 Heap::CollectGarbage(failure->requested(), failure->allocation_space()); |
| 5529 } | 5527 } |
| 5530 | 5528 |
| 5531 | 5529 |
| 5532 } } // namespace v8::internal | 5530 } } // namespace v8::internal |
| OLD | NEW |