Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: test/cctest/test-api.cc

Issue 2866008: [Isolates] Move contents of Top into Isolate.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: ensure we're synced Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/cctest/test-alloc.cc ('k') | test/cctest/test-compiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2007-2009 the V8 project authors. All rights reserved. 1 // Copyright 2007-2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 16 matching lines...) Expand all
27 27
28 #include <limits.h> 28 #include <limits.h>
29 29
30 #include "v8.h" 30 #include "v8.h"
31 31
32 #include "api.h" 32 #include "api.h"
33 #include "compilation-cache.h" 33 #include "compilation-cache.h"
34 #include "execution.h" 34 #include "execution.h"
35 #include "snapshot.h" 35 #include "snapshot.h"
36 #include "platform.h" 36 #include "platform.h"
37 #include "top.h"
38 #include "utils.h" 37 #include "utils.h"
39 #include "cctest.h" 38 #include "cctest.h"
40 39
41 static const bool kLogThreading = true; 40 static const bool kLogThreading = true;
42 41
43 static bool IsNaN(double x) { 42 static bool IsNaN(double x) {
44 #ifdef WIN32 43 #ifdef WIN32
45 return _isnan(x); 44 return _isnan(x);
46 #else 45 #else
47 return isnan(x); 46 return isnan(x);
(...skipping 2272 matching lines...) Expand 10 before | Expand all | Expand 10 after
2320 args[1], 2319 args[1],
2321 args[2], 2320 args[2],
2322 args[3] }; 2321 args[3] };
2323 if (count % cInterval == 0) { 2322 if (count % cInterval == 0) {
2324 v8::TryCatch try_catch; 2323 v8::TryCatch try_catch;
2325 Local<Value> result = fun.As<Function>()->Call(global, 4, argv); 2324 Local<Value> result = fun.As<Function>()->Call(global, 4, argv);
2326 int expected = args[3]->Int32Value(); 2325 int expected = args[3]->Int32Value();
2327 if (try_catch.HasCaught()) { 2326 if (try_catch.HasCaught()) {
2328 CHECK_EQ(expected, count); 2327 CHECK_EQ(expected, count);
2329 CHECK(result.IsEmpty()); 2328 CHECK(result.IsEmpty());
2330 CHECK(!i::Top::has_scheduled_exception()); 2329 CHECK(!i::Isolate::Current()->has_scheduled_exception());
2331 } else { 2330 } else {
2332 CHECK_NE(expected, count); 2331 CHECK_NE(expected, count);
2333 } 2332 }
2334 return result; 2333 return result;
2335 } else { 2334 } else {
2336 return fun.As<Function>()->Call(global, 4, argv); 2335 return fun.As<Function>()->Call(global, 4, argv);
2337 } 2336 }
2338 } 2337 }
2339 } 2338 }
2340 2339
(...skipping 3322 matching lines...) Expand 10 before | Expand all | Expand 10 after
5663 5662
5664 Local<v8::Object> o0 = t->GetFunction()->NewInstance(); 5663 Local<v8::Object> o0 = t->GetFunction()->NewInstance();
5665 Local<v8::Object> o1 = t->GetFunction()->NewInstance(); 5664 Local<v8::Object> o1 = t->GetFunction()->NewInstance();
5666 5665
5667 CHECK(o0->SetPrototype(o1)); 5666 CHECK(o0->SetPrototype(o1));
5668 // If setting the prototype leads to the cycle, SetPrototype should 5667 // If setting the prototype leads to the cycle, SetPrototype should
5669 // return false and keep VM in sane state. 5668 // return false and keep VM in sane state.
5670 v8::TryCatch try_catch; 5669 v8::TryCatch try_catch;
5671 CHECK(!o1->SetPrototype(o0)); 5670 CHECK(!o1->SetPrototype(o0));
5672 CHECK(!try_catch.HasCaught()); 5671 CHECK(!try_catch.HasCaught());
5673 ASSERT(!i::Top::has_pending_exception()); 5672 ASSERT(!i::Isolate::Current()->has_pending_exception());
5674 5673
5675 CHECK_EQ(42, CompileRun("function f() { return 42; }; f()")->Int32Value()); 5674 CHECK_EQ(42, CompileRun("function f() { return 42; }; f()")->Int32Value());
5676 } 5675 }
5677 5676
5678 5677
5679 THREADED_TEST(GetterSetterExceptions) { 5678 THREADED_TEST(GetterSetterExceptions) {
5680 v8::HandleScope handle_scope; 5679 v8::HandleScope handle_scope;
5681 LocalContext context; 5680 LocalContext context;
5682 CompileRun( 5681 CompileRun(
5683 "function Foo() { };" 5682 "function Foo() { };"
(...skipping 3304 matching lines...) Expand 10 before | Expand all | Expand 10 after
8988 } 8987 }
8989 two_byte_content_[14] = 'b'; 8988 two_byte_content_[14] = 'b';
8990 8989
8991 // Create the input string for the regexp - the one we are going to change 8990 // Create the input string for the regexp - the one we are going to change
8992 // properties of. 8991 // properties of.
8993 input_ = i::Factory::NewExternalStringFromAscii(&ascii_resource_); 8992 input_ = i::Factory::NewExternalStringFromAscii(&ascii_resource_);
8994 8993
8995 // Inject the input as a global variable. 8994 // Inject the input as a global variable.
8996 i::Handle<i::String> input_name = 8995 i::Handle<i::String> input_name =
8997 i::Factory::NewStringFromAscii(i::Vector<const char>("input", 5)); 8996 i::Factory::NewStringFromAscii(i::Vector<const char>("input", 5));
8998 i::Top::global_context()->global()->SetProperty(*input_name, *input_, NONE); 8997 i::Isolate::Current()->global_context()->global()->
8998 SetProperty(*input_name, *input_, NONE);
8999 8999
9000 9000
9001 MorphThread morph_thread(this); 9001 MorphThread morph_thread(this);
9002 morph_thread.Start(); 9002 morph_thread.Start();
9003 v8::Locker::StartPreemption(1); 9003 v8::Locker::StartPreemption(1);
9004 LongRunningRegExp(); 9004 LongRunningRegExp();
9005 { 9005 {
9006 v8::Unlocker unlock; 9006 v8::Unlocker unlock;
9007 morph_thread.Join(); 9007 morph_thread.Join();
9008 } 9008 }
(...skipping 1908 matching lines...) Expand 10 before | Expand all | Expand 10 after
10917 const char* code = 10917 const char* code =
10918 "(function() {" 10918 "(function() {"
10919 " for (var i = 0; i < 2*16; i++) {" 10919 " for (var i = 0; i < 2*16; i++) {"
10920 " %_GetFromCache(0, 'a' + i);" 10920 " %_GetFromCache(0, 'a' + i);"
10921 " };" 10921 " };"
10922 " return 'PASSED';" 10922 " return 'PASSED';"
10923 "})()"; 10923 "})()";
10924 HEAP->ClearJSFunctionResultCaches(); 10924 HEAP->ClearJSFunctionResultCaches();
10925 ExpectString(code, "PASSED"); 10925 ExpectString(code, "PASSED");
10926 } 10926 }
OLDNEW
« no previous file with comments | « test/cctest/test-alloc.cc ('k') | test/cctest/test-compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698