Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 849833e58018e9714ff82228bacfdaf138461993..2fd67d834685b35494f5c539c7981e9e189d5811 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -21445,21 +21445,35 @@ TEST(StrongObjectDelete) { |
} |
+static void ExtrasExportsTestRuntimeFunction( |
+ const v8::FunctionCallbackInfo<v8::Value>& args) { |
+ CHECK_EQ(3, args[0]->Int32Value()); |
+ args.GetReturnValue().Set(v8_num(7)); |
+} |
+ |
+ |
TEST(ExtrasExportsObject) { |
v8::Isolate* isolate = CcTest::isolate(); |
v8::HandleScope handle_scope(isolate); |
LocalContext env; |
// standalone.gypi ensures we include the test-extra.js file, which should |
- // add the testExtraShouldReturnFive export |
+ // export the tested functions. |
v8::Local<v8::Object> exports = env->GetExtrasExportsObject(); |
auto func = |
exports->Get(v8_str("testExtraShouldReturnFive")).As<v8::Function>(); |
auto undefined = v8::Undefined(isolate); |
auto result = func->Call(undefined, 0, {}).As<v8::Number>(); |
- |
- CHECK(result->Value() == 5.0); |
+ CHECK_EQ(5, result->Int32Value()); |
+ |
+ v8::Handle<v8::FunctionTemplate> runtimeFunction = |
+ v8::FunctionTemplate::New(isolate, ExtrasExportsTestRuntimeFunction); |
+ exports->Set(v8_str("runtime"), runtimeFunction->GetFunction()); |
+ func = |
+ exports->Get(v8_str("testExtraShouldCallToRuntime")).As<v8::Function>(); |
+ result = func->Call(undefined, 0, {}).As<v8::Number>(); |
+ CHECK_EQ(7, result->Int32Value()); |
} |