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 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
(...skipping 7696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7707 // until an initial map is needed. | 7707 // until an initial map is needed. |
7708 inline bool has_prototype(); | 7708 inline bool has_prototype(); |
7709 inline bool has_instance_prototype(); | 7709 inline bool has_instance_prototype(); |
7710 inline Object* prototype(); | 7710 inline Object* prototype(); |
7711 inline Object* instance_prototype(); | 7711 inline Object* instance_prototype(); |
7712 static void SetPrototype(Handle<JSFunction> function, | 7712 static void SetPrototype(Handle<JSFunction> function, |
7713 Handle<Object> value); | 7713 Handle<Object> value); |
7714 static void SetInstancePrototype(Handle<JSFunction> function, | 7714 static void SetInstancePrototype(Handle<JSFunction> function, |
7715 Handle<Object> value); | 7715 Handle<Object> value); |
7716 | 7716 |
| 7717 // Creates a new closure for the fucntion with the same bindings, |
| 7718 // bound values, and prototype. An equivalent of spec operations |
| 7719 // ``CloneMethod`` and ``CloneBoundFunction``. |
| 7720 static Handle<JSFunction> CloneClosure(Handle<JSFunction> function); |
| 7721 |
7717 // After prototype is removed, it will not be created when accessed, and | 7722 // After prototype is removed, it will not be created when accessed, and |
7718 // [[Construct]] from this function will not be allowed. | 7723 // [[Construct]] from this function will not be allowed. |
7719 bool RemovePrototype(); | 7724 bool RemovePrototype(); |
7720 inline bool should_have_prototype(); | 7725 inline bool should_have_prototype(); |
7721 | 7726 |
7722 // Accessor for this function's initial map's [[class]] | 7727 // Accessor for this function's initial map's [[class]] |
7723 // property. This is primarily used by ECMA native functions. This | 7728 // property. This is primarily used by ECMA native functions. This |
7724 // method sets the class_name field of this function's initial map | 7729 // method sets the class_name field of this function's initial map |
7725 // to a given value. It creates an initial map if this function does | 7730 // to a given value. It creates an initial map if this function does |
7726 // not have one. Note that this method does not copy the initial map | 7731 // not have one. Note that this method does not copy the initial map |
(...skipping 3469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11196 } else { | 11201 } else { |
11197 value &= ~(1 << bit_position); | 11202 value &= ~(1 << bit_position); |
11198 } | 11203 } |
11199 return value; | 11204 return value; |
11200 } | 11205 } |
11201 }; | 11206 }; |
11202 | 11207 |
11203 } } // namespace v8::internal | 11208 } } // namespace v8::internal |
11204 | 11209 |
11205 #endif // V8_OBJECTS_H_ | 11210 #endif // V8_OBJECTS_H_ |
OLD | NEW |