| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 38ca9f59adf0c5480578368f89c406b486282244..d5e838ebe09618a6dbc3dcdd567d5d0136482cc2 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -17504,6 +17504,70 @@ THREADED_TEST(FunctionGetInferredName) {
|
| }
|
|
|
|
|
| +THREADED_TEST(FunctionGetDisplayName) {
|
| + LocalContext env;
|
| + v8::HandleScope scope(env->GetIsolate());
|
| + const char* code = "var error = false;"
|
| + "function a() { this.x = 1; };"
|
| + "a.displayName = 'display_a';"
|
| + "var b = (function() {"
|
| + " var f = function() { this.x = 2; };"
|
| + " f.displayName = 'display_b';"
|
| + " return f;"
|
| + "})();"
|
| + "var c = function() {};"
|
| + "c.__defineGetter__('displayName', function() {"
|
| + " error = true;"
|
| + " throw new Error();"
|
| + "});"
|
| + "function d() {};"
|
| + "d.__defineGetter__('displayName', function() {"
|
| + " error = true;"
|
| + " return 'wrong_display_name';"
|
| + "});"
|
| + "function e() {};"
|
| + "e.displayName = 'wrong_display_name';"
|
| + "e.__defineSetter__('displayName', function() {"
|
| + " error = true;"
|
| + " throw new Error();"
|
| + "});"
|
| + "function f() {};"
|
| + "f.displayName = { 'foo': 6, toString: function() {"
|
| + " error = true;"
|
| + " return 'wrong_display_name';"
|
| + "}};"
|
| + "var g = function() {"
|
| + " arguments.callee.displayName = 'set_in_runtime';"
|
| + "}; g();"
|
| + ;
|
| + v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| + v8::Script::Compile(v8::String::New(code), &origin)->Run();
|
| + v8::Local<v8::Value> error = env->Global()->Get(v8::String::New("error"));
|
| + v8::Local<v8::Function> a = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("a")));
|
| + v8::Local<v8::Function> b = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("b")));
|
| + v8::Local<v8::Function> c = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("c")));
|
| + v8::Local<v8::Function> d = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("d")));
|
| + v8::Local<v8::Function> e = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("e")));
|
| + v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("f")));
|
| + v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast(
|
| + env->Global()->Get(v8::String::New("g")));
|
| + CHECK_EQ(false, error->BooleanValue());
|
| + CHECK_EQ("display_a", *v8::String::Utf8Value(a->GetDisplayName()));
|
| + CHECK_EQ("display_b", *v8::String::Utf8Value(b->GetDisplayName()));
|
| + CHECK(c->GetDisplayName()->IsUndefined());
|
| + CHECK(d->GetDisplayName()->IsUndefined());
|
| + CHECK(e->GetDisplayName()->IsUndefined());
|
| + CHECK(f->GetDisplayName()->IsUndefined());
|
| + CHECK_EQ("set_in_runtime", *v8::String::Utf8Value(g->GetDisplayName()));
|
| +}
|
| +
|
| +
|
| THREADED_TEST(ScriptLineNumber) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|