OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 14894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14905 HandleScope handle_scope(isolate); | 14905 HandleScope handle_scope(isolate); |
14906 | 14906 |
14907 i::FLAG_min_preparse_length = 0; | 14907 i::FLAG_min_preparse_length = 0; |
14908 const char* script = "function foo(a) { return a+1; }"; | 14908 const char* script = "function foo(a) { return a+1; }"; |
14909 v8::ScriptCompiler::Source source(v8_str(script)); | 14909 v8::ScriptCompiler::Source source(v8_str(script)); |
14910 v8::ScriptCompiler::Compile(isolate, &source, | 14910 v8::ScriptCompiler::Compile(isolate, &source, |
14911 v8::ScriptCompiler::kProduceDataToCache); | 14911 v8::ScriptCompiler::kProduceDataToCache); |
14912 // Serialize. | 14912 // Serialize. |
14913 const v8::ScriptCompiler::CachedData* cd = source.GetCachedData(); | 14913 const v8::ScriptCompiler::CachedData* cd = source.GetCachedData(); |
14914 char* serialized_data = i::NewArray<char>(cd->length); | 14914 char* serialized_data = i::NewArray<char>(cd->length); |
14915 i::OS::MemCopy(serialized_data, cd->data, cd->length); | 14915 i::MemCopy(serialized_data, cd->data, cd->length); |
14916 | 14916 |
14917 // Deserialize. | 14917 // Deserialize. |
14918 i::ScriptData* deserialized = i::ScriptData::New(serialized_data, cd->length); | 14918 i::ScriptData* deserialized = i::ScriptData::New(serialized_data, cd->length); |
14919 | 14919 |
14920 // Verify that the original is the same as the deserialized. | 14920 // Verify that the original is the same as the deserialized. |
14921 CHECK_EQ(cd->length, deserialized->Length()); | 14921 CHECK_EQ(cd->length, deserialized->Length()); |
14922 CHECK_EQ(0, memcmp(cd->data, deserialized->Data(), cd->length)); | 14922 CHECK_EQ(0, memcmp(cd->data, deserialized->Data(), cd->length)); |
14923 | 14923 |
14924 delete deserialized; | 14924 delete deserialized; |
14925 i::DeleteArray(serialized_data); | 14925 i::DeleteArray(serialized_data); |
(...skipping 3159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18085 CcTest::i_isolate()->compilation_cache()->Clear(); | 18085 CcTest::i_isolate()->compilation_cache()->Clear(); |
18086 CcTest::heap()->CollectAllAvailableGarbage(); | 18086 CcTest::heap()->CollectAllAvailableGarbage(); |
18087 | 18087 |
18088 // Ring has been destroyed. Free Peoples of Middle-earth Rejoice. | 18088 // Ring has been destroyed. Free Peoples of Middle-earth Rejoice. |
18089 CHECK_EQ(1, destroyed); | 18089 CHECK_EQ(1, destroyed); |
18090 } | 18090 } |
18091 | 18091 |
18092 | 18092 |
18093 static double DoubleFromBits(uint64_t value) { | 18093 static double DoubleFromBits(uint64_t value) { |
18094 double target; | 18094 double target; |
18095 i::OS::MemCopy(&target, &value, sizeof(target)); | 18095 i::MemCopy(&target, &value, sizeof(target)); |
18096 return target; | 18096 return target; |
18097 } | 18097 } |
18098 | 18098 |
18099 | 18099 |
18100 static uint64_t DoubleToBits(double value) { | 18100 static uint64_t DoubleToBits(double value) { |
18101 uint64_t target; | 18101 uint64_t target; |
18102 i::OS::MemCopy(&target, &value, sizeof(target)); | 18102 i::MemCopy(&target, &value, sizeof(target)); |
18103 return target; | 18103 return target; |
18104 } | 18104 } |
18105 | 18105 |
18106 | 18106 |
18107 static double DoubleToDateTime(double input) { | 18107 static double DoubleToDateTime(double input) { |
18108 double date_limit = 864e13; | 18108 double date_limit = 864e13; |
18109 if (std::isnan(input) || input < -date_limit || input > date_limit) { | 18109 if (std::isnan(input) || input < -date_limit || input > date_limit) { |
18110 return i::OS::nan_value(); | 18110 return i::OS::nan_value(); |
18111 } | 18111 } |
18112 return (input < 0) ? -(std::floor(-input)) : std::floor(input); | 18112 return (input < 0) ? -(std::floor(-input)) : std::floor(input); |
(...skipping 4528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
22641 Local<Script> script = v8::ScriptCompiler::Compile( | 22641 Local<Script> script = v8::ScriptCompiler::Compile( |
22642 isolate, &script_source); | 22642 isolate, &script_source); |
22643 Local<Value> script_name = script->GetUnboundScript()->GetScriptName(); | 22643 Local<Value> script_name = script->GetUnboundScript()->GetScriptName(); |
22644 CHECK(!script_name.IsEmpty()); | 22644 CHECK(!script_name.IsEmpty()); |
22645 CHECK(script_name->IsString()); | 22645 CHECK(script_name->IsString()); |
22646 String::Utf8Value utf8_name(script_name); | 22646 String::Utf8Value utf8_name(script_name); |
22647 CHECK_EQ(url, *utf8_name); | 22647 CHECK_EQ(url, *utf8_name); |
22648 int line_number = script->GetUnboundScript()->GetLineNumber(0); | 22648 int line_number = script->GetUnboundScript()->GetLineNumber(0); |
22649 CHECK_EQ(13, line_number); | 22649 CHECK_EQ(13, line_number); |
22650 } | 22650 } |
OLD | NEW |