| 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)");
 | 
| +}
 | 
| 
 |