| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 1854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1865 ;;; deopted at script_id: 29 position: 108 with reason 'not a | 1865 ;;; deopted at script_id: 29 position: 108 with reason 'not a |
| 1866 heap number'. | 1866 heap number'. |
| 1867 0 opt_function1 30 #5 | 1867 0 opt_function1 30 #5 |
| 1868 1 opt_function1 30 #6 | 1868 1 opt_function1 30 #6 |
| 1869 ;;; deopted at script_id: 30 position: 108 with reason 'lost | 1869 ;;; deopted at script_id: 30 position: 108 with reason 'lost |
| 1870 precision or NaN'. | 1870 precision or NaN'. |
| 1871 */ | 1871 */ |
| 1872 | 1872 |
| 1873 { | 1873 { |
| 1874 const char* branch[] = {"", "opt_function0", "opt_function0"}; | 1874 const char* branch[] = {"", "opt_function0", "opt_function0"}; |
| 1875 CHECK_EQ(reason(i::DeoptimizeReason::kNotAHeapNumber), | 1875 const char* deopt_reason = |
| 1876 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch))); | 1876 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch)); |
| 1877 if (deopt_reason != reason(i::DeoptimizeReason::kNotAHeapNumber) && |
| 1878 deopt_reason != reason(i::DeoptimizeReason::kNotASmi)) { |
| 1879 FATAL(deopt_reason); |
| 1880 } |
| 1877 } | 1881 } |
| 1878 { | 1882 { |
| 1879 const char* branch[] = {"", "opt_function1", "opt_function1"}; | 1883 const char* branch[] = {"", "opt_function1", "opt_function1"}; |
| 1880 const char* deopt_reason = | 1884 const char* deopt_reason = |
| 1881 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch)); | 1885 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch)); |
| 1882 if (deopt_reason != reason(i::DeoptimizeReason::kNaN) && | 1886 if (deopt_reason != reason(i::DeoptimizeReason::kNaN) && |
| 1883 deopt_reason != reason(i::DeoptimizeReason::kLostPrecisionOrNaN)) { | 1887 deopt_reason != reason(i::DeoptimizeReason::kLostPrecisionOrNaN) && |
| 1888 deopt_reason != reason(i::DeoptimizeReason::kNotASmi)) { |
| 1884 FATAL(deopt_reason); | 1889 FATAL(deopt_reason); |
| 1885 } | 1890 } |
| 1886 } | 1891 } |
| 1887 { | 1892 { |
| 1888 const char* branch[] = {"", "opt_function2", "opt_function2"}; | 1893 const char* branch[] = {"", "opt_function2", "opt_function2"}; |
| 1889 CHECK_EQ(reason(i::DeoptimizeReason::kDivisionByZero), | 1894 CHECK_EQ(reason(i::DeoptimizeReason::kDivisionByZero), |
| 1890 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch))); | 1895 GetBranchDeoptReason(env, iprofile, branch, arraysize(branch))); |
| 1891 } | 1896 } |
| 1892 iprofiler->DeleteProfile(iprofile); | 1897 iprofiler->DeleteProfile(iprofile); |
| 1893 } | 1898 } |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2176 printf("Profile JSON: %s\n", profile_json.c_str()); | 2181 printf("Profile JSON: %s\n", profile_json.c_str()); |
| 2177 std::string code = profile_checker + profile_json + ")"; | 2182 std::string code = profile_checker + profile_json + ")"; |
| 2178 v8::Local<v8::Value> result = | 2183 v8::Local<v8::Value> result = |
| 2179 CompileRunChecked(CcTest::isolate(), code.c_str()); | 2184 CompileRunChecked(CcTest::isolate(), code.c_str()); |
| 2180 v8::String::Utf8Value value(result); | 2185 v8::String::Utf8Value value(result); |
| 2181 printf("Check result: %*s\n", value.length(), *value); | 2186 printf("Check result: %*s\n", value.length(), *value); |
| 2182 CHECK_EQ(0, value.length()); | 2187 CHECK_EQ(0, value.length()); |
| 2183 | 2188 |
| 2184 i::V8::SetPlatformForTesting(old_platform); | 2189 i::V8::SetPlatformForTesting(old_platform); |
| 2185 } | 2190 } |
| OLD | NEW |