diff options
Diffstat (limited to 'V8Binding/v8/src/factory.cc')
-rw-r--r-- | V8Binding/v8/src/factory.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/V8Binding/v8/src/factory.cc b/V8Binding/v8/src/factory.cc index bb6987b..622055c 100644 --- a/V8Binding/v8/src/factory.cc +++ b/V8Binding/v8/src/factory.cc @@ -401,10 +401,12 @@ Handle<Object> Factory::NewError(const char* maker, const char* type, Handle<JSArray> args) { Handle<String> make_str = Factory::LookupAsciiSymbol(maker); - Handle<JSFunction> fun = - Handle<JSFunction>( - JSFunction::cast( - Top::builtins()->GetProperty(*make_str))); + Handle<Object> fun_obj(Top::builtins()->GetProperty(*make_str)); + // If the builtins haven't been properly configured yet this error + // constructor may not have been defined. Bail out. + if (!fun_obj->IsJSFunction()) + return Factory::undefined_value(); + Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj); Handle<Object> type_obj = Factory::LookupAsciiSymbol(type); Object** argv[2] = { type_obj.location(), Handle<Object>::cast(args).location() }; @@ -671,6 +673,11 @@ Handle<SharedFunctionInfo> Factory::NewSharedFunctionInfo(Handle<String> name) { } +Handle<String> Factory::NumberToString(Handle<Object> number) { + CALL_HEAP_FUNCTION(Heap::NumberToString(*number), String); +} + + Handle<NumberDictionary> Factory::DictionaryAtNumberPut( Handle<NumberDictionary> dictionary, uint32_t key, |