Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2007-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2008 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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 102 CHECK_EQ(make_code(UNCLASSIFIED, 1), | 102 CHECK_EQ(make_code(UNCLASSIFIED, 1), |
| 103 encoder.Encode(passed_function.address())); | 103 encoder.Encode(passed_function.address())); |
| 104 ExternalReference the_hole_value_location = | 104 ExternalReference the_hole_value_location = |
| 105 ExternalReference::the_hole_value_location(); | 105 ExternalReference::the_hole_value_location(); |
| 106 CHECK_EQ(make_code(UNCLASSIFIED, 2), | 106 CHECK_EQ(make_code(UNCLASSIFIED, 2), |
| 107 encoder.Encode(the_hole_value_location.address())); | 107 encoder.Encode(the_hole_value_location.address())); |
| 108 ExternalReference stack_guard_limit_address = | 108 ExternalReference stack_guard_limit_address = |
| 109 ExternalReference::address_of_stack_guard_limit(); | 109 ExternalReference::address_of_stack_guard_limit(); |
| 110 CHECK_EQ(make_code(UNCLASSIFIED, 3), | 110 CHECK_EQ(make_code(UNCLASSIFIED, 3), |
| 111 encoder.Encode(stack_guard_limit_address.address())); | 111 encoder.Encode(stack_guard_limit_address.address())); |
| 112 CHECK_EQ(make_code(UNCLASSIFIED, 4), | 112 CHECK_EQ(make_code(UNCLASSIFIED, 5), |
|
Mads Ager (chromium)
2009/01/13 14:26:10
Do you want to have a test for index 4 here as wel
olehougaard
2009/01/13 14:35:22
Not really. A few samples should be sufficient or
| |
| 113 encoder.Encode(ExternalReference::debug_break().address())); | 113 encoder.Encode(ExternalReference::debug_break().address())); |
| 114 CHECK_EQ(make_code(UNCLASSIFIED, 5), | 114 CHECK_EQ(make_code(UNCLASSIFIED, 6), |
| 115 encoder.Encode(ExternalReference::new_space_start().address())); | 115 encoder.Encode(ExternalReference::new_space_start().address())); |
| 116 } | 116 } |
| 117 | 117 |
| 118 | 118 |
| 119 TEST(ExternalReferenceDecoder) { | 119 TEST(ExternalReferenceDecoder) { |
| 120 StatsTable::SetCounterFunction(counter_function); | 120 StatsTable::SetCounterFunction(counter_function); |
| 121 Heap::Setup(false); | 121 Heap::Setup(false); |
| 122 ExternalReferenceDecoder decoder; | 122 ExternalReferenceDecoder decoder; |
| 123 CHECK_EQ(AddressOf(Builtins::ArrayCode), | 123 CHECK_EQ(AddressOf(Builtins::ArrayCode), |
| 124 decoder.Decode(make_code(BUILTIN, Builtins::ArrayCode))); | 124 decoder.Decode(make_code(BUILTIN, Builtins::ArrayCode))); |
| 125 CHECK_EQ(AddressOf(Runtime::kAbort), | 125 CHECK_EQ(AddressOf(Runtime::kAbort), |
| 126 decoder.Decode(make_code(RUNTIME_FUNCTION, Runtime::kAbort))); | 126 decoder.Decode(make_code(RUNTIME_FUNCTION, Runtime::kAbort))); |
| 127 CHECK_EQ(AddressOf(IC_Utility(IC::kLoadCallbackProperty)), | 127 CHECK_EQ(AddressOf(IC_Utility(IC::kLoadCallbackProperty)), |
| 128 decoder.Decode(make_code(IC_UTILITY, IC::kLoadCallbackProperty))); | 128 decoder.Decode(make_code(IC_UTILITY, IC::kLoadCallbackProperty))); |
| 129 CHECK_EQ(AddressOf(Debug_Address(Debug::k_register_address, 3)), | 129 CHECK_EQ(AddressOf(Debug_Address(Debug::k_register_address, 3)), |
| 130 decoder.Decode(make_code(DEBUG_ADDRESS, register_code(3)))); | 130 decoder.Decode(make_code(DEBUG_ADDRESS, register_code(3)))); |
| 131 ExternalReference keyed_load_function = | 131 ExternalReference keyed_load_function = |
| 132 ExternalReference(&Counters::keyed_load_function_prototype); | 132 ExternalReference(&Counters::keyed_load_function_prototype); |
| 133 CHECK_EQ(keyed_load_function.address(), | 133 CHECK_EQ(keyed_load_function.address(), |
| 134 decoder.Decode( | 134 decoder.Decode( |
| 135 make_code(STATS_COUNTER, | 135 make_code(STATS_COUNTER, |
| 136 Counters::k_keyed_load_function_prototype))); | 136 Counters::k_keyed_load_function_prototype))); |
| 137 CHECK_EQ(ExternalReference::builtin_passed_function().address(), | 137 CHECK_EQ(ExternalReference::builtin_passed_function().address(), |
| 138 decoder.Decode(make_code(UNCLASSIFIED, 1))); | 138 decoder.Decode(make_code(UNCLASSIFIED, 1))); |
| 139 CHECK_EQ(ExternalReference::the_hole_value_location().address(), | 139 CHECK_EQ(ExternalReference::the_hole_value_location().address(), |
| 140 decoder.Decode(make_code(UNCLASSIFIED, 2))); | 140 decoder.Decode(make_code(UNCLASSIFIED, 2))); |
| 141 CHECK_EQ(ExternalReference::address_of_stack_guard_limit().address(), | 141 CHECK_EQ(ExternalReference::address_of_stack_guard_limit().address(), |
| 142 decoder.Decode(make_code(UNCLASSIFIED, 3))); | 142 decoder.Decode(make_code(UNCLASSIFIED, 3))); |
| 143 CHECK_EQ(ExternalReference::debug_break().address(), | 143 CHECK_EQ(ExternalReference::debug_break().address(), |
| 144 decoder.Decode(make_code(UNCLASSIFIED, 4))); | 144 decoder.Decode(make_code(UNCLASSIFIED, 5))); |
|
Mads Ager (chromium)
2009/01/13 14:26:10
Ditto.
olehougaard
2009/01/13 14:35:22
Ditto :)
| |
| 145 CHECK_EQ(ExternalReference::new_space_start().address(), | 145 CHECK_EQ(ExternalReference::new_space_start().address(), |
| 146 decoder.Decode(make_code(UNCLASSIFIED, 5))); | 146 decoder.Decode(make_code(UNCLASSIFIED, 6))); |
| 147 } | 147 } |
| 148 | 148 |
| 149 | 149 |
| 150 static void Serialize() { | 150 static void Serialize() { |
| 151 #ifdef DEBUG | 151 #ifdef DEBUG |
| 152 FLAG_debug_serialization = true; | 152 FLAG_debug_serialization = true; |
| 153 #endif | 153 #endif |
| 154 StatsTable::SetCounterFunction(counter_function); | 154 StatsTable::SetCounterFunction(counter_function); |
| 155 | 155 |
| 156 v8::HandleScope scope; | 156 v8::HandleScope scope; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 257 TEST(DeserializeExtensions) { | 257 TEST(DeserializeExtensions) { |
| 258 v8::HandleScope scope; | 258 v8::HandleScope scope; |
| 259 | 259 |
| 260 Deserialize(); | 260 Deserialize(); |
| 261 const char* c_source = "gc();"; | 261 const char* c_source = "gc();"; |
| 262 v8::Local<v8::String> source = v8::String::New(c_source); | 262 v8::Local<v8::String> source = v8::String::New(c_source); |
| 263 v8::Local<v8::Script> script = v8::Script::Compile(source); | 263 v8::Local<v8::Script> script = v8::Script::Compile(source); |
| 264 v8::Local<v8::Value> value = script->Run(); | 264 v8::Local<v8::Value> value = script->Run(); |
| 265 CHECK(value->IsUndefined()); | 265 CHECK(value->IsUndefined()); |
| 266 } | 266 } |
| OLD | NEW |