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 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 JSFunction::cast(arguments_boilerplate->map()->constructor()), | 608 JSFunction::cast(arguments_boilerplate->map()->constructor()), |
609 isolate); | 609 isolate); |
610 | 610 |
611 // Only collect keys if access is permitted. | 611 // Only collect keys if access is permitted. |
612 for (Handle<Object> p = object; | 612 for (Handle<Object> p = object; |
613 *p != isolate->heap()->null_value(); | 613 *p != isolate->heap()->null_value(); |
614 p = Handle<Object>(p->GetPrototype(isolate), isolate)) { | 614 p = Handle<Object>(p->GetPrototype(isolate), isolate)) { |
615 if (p->IsJSProxy()) { | 615 if (p->IsJSProxy()) { |
616 Handle<JSProxy> proxy(JSProxy::cast(*p), isolate); | 616 Handle<JSProxy> proxy(JSProxy::cast(*p), isolate); |
617 Handle<Object> args[] = { proxy }; | 617 Handle<Object> args[] = { proxy }; |
618 Handle<Object> names = Execution::Call( | 618 Handle<Object> names = Execution::Call(isolate, |
619 isolate->proxy_enumerate(), object, ARRAY_SIZE(args), args, threw); | 619 isolate->proxy_enumerate(), |
| 620 object, |
| 621 ARRAY_SIZE(args), |
| 622 args, |
| 623 threw); |
620 if (*threw) return content; | 624 if (*threw) return content; |
621 content = AddKeysFromJSArray(content, Handle<JSArray>::cast(names)); | 625 content = AddKeysFromJSArray(content, Handle<JSArray>::cast(names)); |
622 break; | 626 break; |
623 } | 627 } |
624 | 628 |
625 Handle<JSObject> current(JSObject::cast(*p), isolate); | 629 Handle<JSObject> current(JSObject::cast(*p), isolate); |
626 | 630 |
627 // Check access rights if required. | 631 // Check access rights if required. |
628 if (current->IsAccessCheckNeeded() && | 632 if (current->IsAccessCheckNeeded() && |
629 !isolate->MayNamedAccess(*current, | 633 !isolate->MayNamedAccess(*current, |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
895 data->next = prev_next_; | 899 data->next = prev_next_; |
896 data->limit = prev_limit_; | 900 data->limit = prev_limit_; |
897 #ifdef DEBUG | 901 #ifdef DEBUG |
898 handles_detached_ = true; | 902 handles_detached_ = true; |
899 #endif | 903 #endif |
900 return deferred; | 904 return deferred; |
901 } | 905 } |
902 | 906 |
903 | 907 |
904 } } // namespace v8::internal | 908 } } // namespace v8::internal |
OLD | NEW |