Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 91f37367dae9d0ec815cbd4738bc62484e1df80f..0864cac81cfdd16abb9eb859c5e9fd42560fa3bb 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -17836,6 +17836,33 @@ THREADED_TEST(FunctionGetScriptId) { |
} |
+THREADED_TEST(FunctionGetBoundFunction) { |
+ LocalContext env; |
+ v8::HandleScope scope(env->GetIsolate()); |
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::NewFromUtf8( |
+ env->GetIsolate(), "test")); |
+ v8::Handle<v8::String> script = v8::String::NewFromUtf8( |
+ env->GetIsolate(), |
+ "function f () {}\n" |
+ "var g = f.bind();\n"); |
+ v8::Script::Compile(script, &origin)->Run(); |
+ v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( |
+ env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
+ v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast( |
+ env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g"))); |
+ CHECK(!g->GetBoundFunction()->IsUndefined()); |
yurys
2013/12/12 20:20:50
CHECK(g->GetBoundFunction()->IsFunction())
Alexandra Mikhaylova
2013/12/18 10:00:28
Done.
|
+ CHECK_EQ(*v8::String::Utf8Value(f->GetName()), |
yurys
2013/12/12 20:20:50
CHECK_EQ should work well for Handles, you don't n
Alexandra Mikhaylova
2013/12/18 10:00:28
Done.
|
+ *v8::String::Utf8Value( |
+ Local<v8::Function>::Cast(g->GetBoundFunction())->GetName())); |
yurys
2013/12/12 20:20:50
It may make sense to extract Local<v8::Function>::
Alexandra Mikhaylova
2013/12/18 10:00:28
Done.
|
+ CHECK_EQ(f->GetScriptLineNumber(), |
+ Local<v8::Function>::Cast( |
+ g->GetBoundFunction())->GetScriptLineNumber()); |
+ CHECK_EQ(f->GetScriptColumnNumber(), |
+ Local<v8::Function>::Cast( |
+ g->GetBoundFunction())->GetScriptColumnNumber()); |
+} |
+ |
+ |
static void GetterWhichReturns42( |
Local<String> name, |
const v8::PropertyCallbackInfo<v8::Value>& info) { |