[251374] False Null-pointer warning
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
index 3f433f4..6b32849 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
@@ -18,6 +18,7 @@
 

 import org.eclipse.wst.jsdt.core.JavaScriptCore;

 import org.eclipse.wst.jsdt.core.tests.compiler.parser.SyntaxErrorTest;

+import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicAnalyseTests;

 import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicParserTests;

 import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicResolveTests;

 import org.eclipse.wst.jsdt.core.tests.compiler.regression.CharOperationTest;

@@ -49,6 +50,7 @@
 	standardTests.add(BasicParserTests.class);

 	standardTests.add(InferTypesTests.class);

 	standardTests.add(BasicResolveTests.class);

+	standardTests.add(BasicAnalyseTests.class);

 	standardTests.add(CharOperationTest.class);

 	standardTests.add(UtilTest.class);

 	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
new file mode 100644
index 0000000..a8b2eff
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
@@ -0,0 +1,116 @@
+package org.eclipse.wst.jsdt.core.tests.compiler.regression;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class BasicAnalyseTests extends AbstractRegressionTest {
+	public BasicAnalyseTests(String name) {
+		super(name);
+	}
+	
+	public void testBug251374_1() {
+		Map custom = new HashMap();
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+		this.runNegativeTest(
+				new String[] {
+						"X.js",
+						"var b = null;\n" +
+						"function boo() {\n" +
+						"b.toString();\n" +
+						"}\n" +
+						"b = 2;\n" +
+						"boo();" 
+				},
+				"", null, false, custom
+		);
+	}
+	public void testBug251374_2() {
+		Map custom = new HashMap();
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+		this.runNegativeTest(
+				new String[] {
+						"X.js",
+						"var b = null;\n" +
+						"function boo() {\n" +
+						"b.toString();\n" +
+						"}\n" +
+						"boo();" 
+				},
+				"----------\n" + 
+				"1. ERROR in X.js (at line 3)\n" + 
+				"	b.toString();\n" + 
+				"	^\n" + 
+				"Null pointer access: The variable b can only be null at this location\n" + 
+				"----------\n", null, false, custom
+		);
+	}
+	
+	public void testBug251374_3() {
+		Map custom = new HashMap();
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+		this.runNegativeTest(
+				new String[] {
+						"X.js",
+						"var b = null;\n" +
+						"function boo() {\n" +
+						"b = null\n" +
+						"b.toString();\n" +
+						"}\n" +
+						"b = 2;\n" +
+						"boo();" 
+				},
+				"----------\n" + 
+				"1. ERROR in X.js (at line 4)\n" + 
+				"	b.toString();\n" + 
+				"	^\n" + 
+				"Null pointer access: The variable b can only be null at this location\n" + 
+				"----------\n", null, false, custom
+		);
+	}
+	
+	public void testBug251374_4() {
+		Map custom = new HashMap();
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+		this.runNegativeTest(
+				new String[] {
+						"X.js",
+						"var b = null;\n" +
+						"function boo() {\n" +
+						"b = null\n" +
+						"b.toString();\n" +
+						"}\n" +
+						"b = 2;\n" +
+						"boo();\n" +
+						"b.toString();" 
+				},
+				"----------\n" + 
+				"1. ERROR in X.js (at line 4)\n" + 
+				"	b.toString();\n" + 
+				"	^\n" + 
+				"Null pointer access: The variable b can only be null at this location\n" + 
+				"----------\n", null, false, custom
+		);
+	}
+	
+	public void testBug251374_5() {
+		this.runNegativeTest(
+				new String[] {
+						"X.js",
+						"var b = null;\n" +
+						"function boo() {\n" +
+						"b = null\n" +
+						"b.toString();\n" +
+						"}\n" +
+						"b = 2;\n" +
+						"boo();\n" +
+						"b.toString();" 
+				},
+				""
+		);
+	}
+
+}