| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 <stdlib.h> | 5 #include <stdlib.h> |
| 6 #include <limits> | 6 #include <limits> |
| 7 | 7 |
| 8 #include "v8.h" | 8 #include "v8.h" |
| 9 | 9 |
| 10 #include "accessors.h" | 10 #include "accessors.h" |
| (...skipping 14865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14876 return isolate->heap()->ToBoolean(obj->IsJSGlobalProxy()); | 14876 return isolate->heap()->ToBoolean(obj->IsJSGlobalProxy()); |
| 14877 } | 14877 } |
| 14878 | 14878 |
| 14879 | 14879 |
| 14880 RUNTIME_FUNCTION(Runtime_IsObserved) { | 14880 RUNTIME_FUNCTION(Runtime_IsObserved) { |
| 14881 SealHandleScope shs(isolate); | 14881 SealHandleScope shs(isolate); |
| 14882 ASSERT(args.length() == 1); | 14882 ASSERT(args.length() == 1); |
| 14883 | 14883 |
| 14884 if (!args[0]->IsJSReceiver()) return isolate->heap()->false_value(); | 14884 if (!args[0]->IsJSReceiver()) return isolate->heap()->false_value(); |
| 14885 CONVERT_ARG_CHECKED(JSReceiver, obj, 0); | 14885 CONVERT_ARG_CHECKED(JSReceiver, obj, 0); |
| 14886 if (obj->IsJSGlobalProxy()) { | 14886 ASSERT(!obj->IsJSGlobalProxy() || !obj->map()->is_observed()); |
| 14887 Object* proto = obj->GetPrototype(); | |
| 14888 if (proto->IsNull()) return isolate->heap()->false_value(); | |
| 14889 ASSERT(proto->IsJSGlobalObject()); | |
| 14890 obj = JSReceiver::cast(proto); | |
| 14891 } | |
| 14892 return isolate->heap()->ToBoolean(obj->map()->is_observed()); | 14887 return isolate->heap()->ToBoolean(obj->map()->is_observed()); |
| 14893 } | 14888 } |
| 14894 | 14889 |
| 14895 | 14890 |
| 14896 RUNTIME_FUNCTION(Runtime_SetIsObserved) { | 14891 RUNTIME_FUNCTION(Runtime_SetIsObserved) { |
| 14897 HandleScope scope(isolate); | 14892 HandleScope scope(isolate); |
| 14898 ASSERT(args.length() == 1); | 14893 ASSERT(args.length() == 1); |
| 14899 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0); | 14894 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0); |
| 14900 if (obj->IsJSGlobalProxy()) { | 14895 ASSERT(!obj->IsJSGlobalProxy()); |
| 14901 Object* proto = obj->GetPrototype(); | |
| 14902 if (proto->IsNull()) return isolate->heap()->undefined_value(); | |
| 14903 ASSERT(proto->IsJSGlobalObject()); | |
| 14904 obj = handle(JSReceiver::cast(proto)); | |
| 14905 } | |
| 14906 if (obj->IsJSProxy()) | 14896 if (obj->IsJSProxy()) |
| 14907 return isolate->heap()->undefined_value(); | 14897 return isolate->heap()->undefined_value(); |
| 14908 | 14898 |
| 14909 ASSERT(obj->IsJSObject()); | 14899 ASSERT(obj->IsJSObject()); |
| 14910 JSObject::SetObserved(Handle<JSObject>::cast(obj)); | 14900 JSObject::SetObserved(Handle<JSObject>::cast(obj)); |
| 14911 return isolate->heap()->undefined_value(); | 14901 return isolate->heap()->undefined_value(); |
| 14912 } | 14902 } |
| 14913 | 14903 |
| 14914 | 14904 |
| 14915 RUNTIME_FUNCTION(Runtime_SetMicrotaskPending) { | 14905 RUNTIME_FUNCTION(Runtime_SetMicrotaskPending) { |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15263 } | 15253 } |
| 15264 return NULL; | 15254 return NULL; |
| 15265 } | 15255 } |
| 15266 | 15256 |
| 15267 | 15257 |
| 15268 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 15258 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { |
| 15269 return &(kIntrinsicFunctions[static_cast<int>(id)]); | 15259 return &(kIntrinsicFunctions[static_cast<int>(id)]); |
| 15270 } | 15260 } |
| 15271 | 15261 |
| 15272 } } // namespace v8::internal | 15262 } } // namespace v8::internal |
| OLD | NEW |