| Index: test/cctest/test-func-name-inference.cc
|
| diff --git a/test/cctest/test-func-name-inference.cc b/test/cctest/test-func-name-inference.cc
|
| index dea5c47735b8d847f442c16884ff8377611642ae..80f9bd189a06fe3cf4ad1b219f93ce00846c1222 100644
|
| --- a/test/cctest/test-func-name-inference.cc
|
| +++ b/test/cctest/test-func-name-inference.cc
|
| @@ -281,3 +281,74 @@ TEST(Issue380) {
|
| "}");
|
| CheckFunctionName(script, "return p", "");
|
| }
|
| +
|
| +
|
| +TEST(MultipleAssignments) {
|
| + InitializeVM();
|
| + v8::HandleScope scope;
|
| +
|
| + v8::Handle<v8::Script> script = Compile(
|
| + "var fun1 = fun2 = function () { return 1; }");
|
| + CheckFunctionName(script, "return 1", "fun2");
|
| +}
|
| +
|
| +
|
| +TEST(PassedAsConstructorParameter) {
|
| + InitializeVM();
|
| + v8::HandleScope scope;
|
| +
|
| + v8::Handle<v8::Script> script = Compile(
|
| + "function Foo() {}\n"
|
| + "var foo = new Foo(function() { return 1; })");
|
| + CheckFunctionName(script, "return 1", "");
|
| +}
|
| +
|
| +
|
| +TEST(FactoryHashmap) {
|
| + InitializeVM();
|
| + v8::HandleScope scope;
|
| +
|
| + v8::Handle<v8::Script> script = Compile(
|
| + "function createMyObj() {\n"
|
| + " var obj = {};\n"
|
| + " obj[\"method1\"] = function() { return 1; }\n"
|
| + " obj[\"method2\"] = function() { return 2; }\n"
|
| + " return obj;\n"
|
| + "}");
|
| + CheckFunctionName(script, "return 1", "obj.method1");
|
| + CheckFunctionName(script, "return 2", "obj.method2");
|
| +}
|
| +
|
| +
|
| +TEST(FactoryHashmapVariable) {
|
| + InitializeVM();
|
| + v8::HandleScope scope;
|
| +
|
| + v8::Handle<v8::Script> script = Compile(
|
| + "function createMyObj() {\n"
|
| + " var obj = {};\n"
|
| + " var methodName = \"method1\";\n"
|
| + " obj[methodName] = function() { return 1; }\n"
|
| + " methodName = \"method2\";\n"
|
| + " obj[methodName] = function() { return 2; }\n"
|
| + " return obj;\n"
|
| + "}");
|
| + // Can't infer function names statically.
|
| + CheckFunctionName(script, "return 1", "obj.(anonymous function)");
|
| + CheckFunctionName(script, "return 2", "obj.(anonymous function)");
|
| +}
|
| +
|
| +
|
| +TEST(FactoryHashmapConditional) {
|
| + InitializeVM();
|
| + v8::HandleScope scope;
|
| +
|
| + v8::Handle<v8::Script> script = Compile(
|
| + "function createMyObj() {\n"
|
| + " var obj = {};\n"
|
| + " obj[0 ? \"method1\" : \"method2\"] = function() { return 1; }\n"
|
| + " return obj;\n"
|
| + "}");
|
| + // Can't infer the function name statically.
|
| + CheckFunctionName(script, "return 1", "obj.(anonymous function)");
|
| +}
|
|
|