Index: src/factory.cc |
=================================================================== |
--- src/factory.cc (revision 10404) |
+++ src/factory.cc (working copy) |
@@ -77,14 +77,24 @@ |
} |
-Handle<NumberDictionary> Factory::NewNumberDictionary(int at_least_space_for) { |
+Handle<SeededNumberDictionary> Factory::NewSeededNumberDictionary( |
+ int at_least_space_for) { |
ASSERT(0 <= at_least_space_for); |
CALL_HEAP_FUNCTION(isolate(), |
- NumberDictionary::Allocate(at_least_space_for), |
- NumberDictionary); |
+ SeededNumberDictionary::Allocate(at_least_space_for), |
+ SeededNumberDictionary); |
} |
+Handle<UnseededNumberDictionary> Factory::NewUnseededNumberDictionary( |
+ int at_least_space_for) { |
+ ASSERT(0 <= at_least_space_for); |
+ CALL_HEAP_FUNCTION(isolate(), |
+ UnseededNumberDictionary::Allocate(at_least_space_for), |
+ UnseededNumberDictionary); |
+} |
+ |
+ |
Handle<ObjectHashSet> Factory::NewObjectHashSet(int at_least_space_for) { |
ASSERT(0 <= at_least_space_for); |
CALL_HEAP_FUNCTION(isolate(), |
@@ -131,6 +141,13 @@ |
} |
+Handle<AccessorPair> Factory::NewAccessorPair() { |
+ CALL_HEAP_FUNCTION(isolate(), |
+ isolate()->heap()->AllocateAccessorPair(), |
+ AccessorPair); |
+} |
+ |
+ |
// Symbols are created in the old generation (data space). |
Handle<String> Factory::LookupSymbol(Vector<const char> string) { |
CALL_HEAP_FUNCTION(isolate(), |
@@ -698,7 +715,7 @@ |
// Allocate the function |
Handle<JSFunction> function = NewFunction(name, the_hole_value()); |
- // Setup the code pointer in both the shared function info and in |
+ // Set up the code pointer in both the shared function info and in |
// the function itself. |
function->shared()->set_code(*code); |
function->set_code(*code); |
@@ -729,7 +746,7 @@ |
// Allocate the function. |
Handle<JSFunction> function = NewFunction(name, prototype); |
- // Setup the code pointer in both the shared function info and in |
+ // Set up the code pointer in both the shared function info and in |
// the function itself. |
function->shared()->set_code(*code); |
function->set_code(*code); |
@@ -751,7 +768,10 @@ |
// property that refers to the function. |
SetPrototypeProperty(function, prototype); |
// Currently safe because it is only invoked from Genesis. |
- SetLocalPropertyNoThrow(prototype, constructor_symbol(), function, DONT_ENUM); |
+ CHECK_NOT_EMPTY_HANDLE(isolate(), |
+ JSObject::SetLocalPropertyIgnoreAttributes( |
+ prototype, constructor_symbol(), |
+ function, DONT_ENUM)); |
return function; |
} |
@@ -1061,16 +1081,26 @@ |
} |
-Handle<NumberDictionary> Factory::DictionaryAtNumberPut( |
- Handle<NumberDictionary> dictionary, |
+Handle<SeededNumberDictionary> Factory::DictionaryAtNumberPut( |
+ Handle<SeededNumberDictionary> dictionary, |
uint32_t key, |
Handle<Object> value) { |
CALL_HEAP_FUNCTION(isolate(), |
dictionary->AtNumberPut(key, *value), |
- NumberDictionary); |
+ SeededNumberDictionary); |
} |
+Handle<UnseededNumberDictionary> Factory::DictionaryAtNumberPut( |
+ Handle<UnseededNumberDictionary> dictionary, |
+ uint32_t key, |
+ Handle<Object> value) { |
+ CALL_HEAP_FUNCTION(isolate(), |
+ dictionary->AtNumberPut(key, *value), |
+ UnseededNumberDictionary); |
+} |
+ |
+ |
Handle<JSFunction> Factory::NewFunctionHelper(Handle<String> name, |
Handle<Object> prototype) { |
Handle<SharedFunctionInfo> function_share = NewSharedFunctionInfo(name); |