| Index: test/cctest/test-global-object.cc
 | 
| diff --git a/test/mjsunit/regress/regress-2489.js b/test/cctest/test-global-object.cc
 | 
| similarity index 67%
 | 
| copy from test/mjsunit/regress/regress-2489.js
 | 
| copy to test/cctest/test-global-object.cc
 | 
| index 882c4f794a88e24d1d64e86a466b27c39f51e625..16c0be0eb95ee4a4fe5e42c2bcfa6760f0c8120e 100644
 | 
| --- a/test/mjsunit/regress/regress-2489.js
 | 
| +++ b/test/cctest/test-global-object.cc
 | 
| @@ -25,26 +25,27 @@
 | 
|  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
|  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
|  
 | 
| -// Flags: --allow-natives-syntax
 | 
| +#include "v8.h"
 | 
|  
 | 
| -"use strict";
 | 
| +#include "cctest.h"
 | 
|  
 | 
| -function f(a, b) {
 | 
| -  return g("c", "d");
 | 
| -}
 | 
| -
 | 
| -function g(a, b) {
 | 
| -  g.constructor.apply(this, arguments);
 | 
| -}
 | 
| +using namespace v8;
 | 
|  
 | 
| -g.constructor = function(a, b) {
 | 
| -  assertEquals("c", a);
 | 
| -  assertEquals("d", b);
 | 
| +// This test fails if properties on the prototype of the global object appear
 | 
| +// as declared globals.
 | 
| +TEST(StrictUndeclaredGlobalVariable) {
 | 
| +  HandleScope scope;
 | 
| +  v8::Local<v8::String> var_name = v8_str("x");
 | 
| +  LocalContext context;
 | 
| +  v8::TryCatch try_catch;
 | 
| +  v8::Local<v8::Script> script = v8_compile("\"use strict\"; x = 42;");
 | 
| +  v8::Handle<v8::Object> proto = v8::Object::New();
 | 
| +  v8::Handle<v8::Object> global =
 | 
| +      context->Global()->GetPrototype().As<v8::Object>();
 | 
| +  proto->Set(var_name, v8_num(100));
 | 
| +  global->SetPrototype(proto);
 | 
| +  script->Run();
 | 
| +  CHECK(try_catch.HasCaught());
 | 
| +  v8::String::Utf8Value exception(try_catch.Exception());
 | 
| +  CHECK_EQ("ReferenceError: x is not defined", *exception);
 | 
|  }
 | 
| -
 | 
| -f("a", "b");
 | 
| -f("a", "b");
 | 
| -%OptimizeFunctionOnNextCall(f);
 | 
| -f("a", "b");
 | 
| -g.x = "deopt";
 | 
| -f("a", "b");
 | 
| 
 |