diff options
-rw-r--r-- | scripting/engine.cpp | 6 | ||||
-rw-r--r-- | scripting/engine.h | 2 | ||||
-rw-r--r-- | scripting/engine_v8.cpp | 8 | ||||
-rw-r--r-- | scripting/engine_v8.h | 2 |
4 files changed, 18 insertions, 0 deletions
diff --git a/scripting/engine.cpp b/scripting/engine.cpp index 3300e389c24..e5b6dbcaf66 100644 --- a/scripting/engine.cpp +++ b/scripting/engine.cpp @@ -53,6 +53,12 @@ namespace mongo { case NumberDouble: builder.append( fieldName , getNumber( scopeName ) ); break; + case NumberInt: + builder.append( fieldName , getNumberInt( scopeName ) ); + break; + case NumberLong: + builder.append( fieldName , getNumberLongLong( scopeName ) ); + break; case String: builder.append( fieldName , getString( scopeName ).c_str() ); break; diff --git a/scripting/engine.h b/scripting/engine.h index dfef5aa58a9..16c98c99702 100644 --- a/scripting/engine.h +++ b/scripting/engine.h @@ -43,6 +43,8 @@ namespace mongo { virtual void externalSetup() = 0; virtual double getNumber( const char *field ) = 0; + virtual int getNumberInt( const char *field ){ return (int)getNumber( field ); } + virtual long long getNumberLongLong( const char *field ){ return (long long)getNumber( field ); } virtual string getString( const char *field ) = 0; virtual bool getBoolean( const char *field ) = 0; virtual BSONObj getObject( const char *field ) = 0; diff --git a/scripting/engine_v8.cpp b/scripting/engine_v8.cpp index 512f524470a..064daf54988 100644 --- a/scripting/engine_v8.cpp +++ b/scripting/engine_v8.cpp @@ -164,6 +164,14 @@ namespace mongo { return get( field )->ToNumber()->Value(); } + int V8Scope::getNumberInt( const char *field ){ + return get( field )->ToInt32()->Value(); + } + + long long V8Scope::getNumberLongLong( const char *field ){ + return get( field )->ToInteger()->Value(); + } + string V8Scope::getString( const char *field ){ return toSTLString( get( field ) ); } diff --git a/scripting/engine_v8.h b/scripting/engine_v8.h index 7b2a7ac1bd0..a26c354413e 100644 --- a/scripting/engine_v8.h +++ b/scripting/engine_v8.h @@ -41,6 +41,8 @@ namespace mongo { v8::Handle<v8::Value> get( const char * field ); virtual double getNumber( const char *field ); + virtual int getNumberInt( const char *field ); + virtual long long getNumberLongLong( const char *field ); virtual string getString( const char *field ); virtual bool getBoolean( const char *field ); virtual BSONObj getObject( const char *field ); |