| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index f948cd3194f9a6b649283ee795f02566bdd2dbf6..bb9da9f5af46c3bd1fb9eeaa9fae6195f9f06eec 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -2788,6 +2788,9 @@ static const char* kExtensionTestScript =
|
|
|
| static v8::Handle<Value> CallFun(const v8::Arguments& args) {
|
| ApiTestFuzzer::Fuzz();
|
| + if (args.IsConstructCall()) {
|
| + args.This()->Set(v8_str("data"), args.Data());
|
| + }
|
| return args.Data();
|
| }
|
|
|
| @@ -2829,6 +2832,21 @@ THREADED_TEST(FunctionLookup) {
|
| }
|
|
|
|
|
| +THREADED_TEST(NativeFunctionConstructCall) {
|
| + v8::RegisterExtension(new FunctionExtension());
|
| + v8::HandleScope handle_scope;
|
| + static const char* exts[1] = { "functiontest" };
|
| + v8::ExtensionConfiguration config(1, exts);
|
| + LocalContext context(&config);
|
| + CHECK_EQ(v8::Integer::New(8),
|
| + Script::Compile(v8_str("(new A()).data"))->Run());
|
| + CHECK_EQ(v8::Integer::New(7),
|
| + Script::Compile(v8_str("(new B()).data"))->Run());
|
| + CHECK_EQ(v8::Integer::New(6),
|
| + Script::Compile(v8_str("(new C()).data"))->Run());
|
| +}
|
| +
|
| +
|
| static const char* last_location;
|
| static const char* last_message;
|
| void StoringErrorCallback(const char* location, const char* message) {
|
|
|