summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripting/engine.cpp6
-rw-r--r--scripting/engine.h2
-rw-r--r--scripting/engine_v8.cpp8
-rw-r--r--scripting/engine_v8.h2
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 );