| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fxfa/fm2js/xfa_fm2jscontext.h" | 7 #include "xfa/fxfa/fm2js/xfa_fm2jscontext.h" |
| 8 | 8 |
| 9 #include <time.h> | 9 #include <time.h> |
| 10 | 10 |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 | 496 |
| 497 } // namespace | 497 } // namespace |
| 498 | 498 |
| 499 // static | 499 // static |
| 500 void CXFA_FM2JSContext::Abs(CFXJSE_Value* pThis, | 500 void CXFA_FM2JSContext::Abs(CFXJSE_Value* pThis, |
| 501 const CFX_ByteStringC& szFuncName, | 501 const CFX_ByteStringC& szFuncName, |
| 502 CFXJSE_Arguments& args) { | 502 CFXJSE_Arguments& args) { |
| 503 if (args.GetLength() != 1) { | 503 if (args.GetLength() != 1) { |
| 504 CXFA_FM2JSContext* pContext = | 504 CXFA_FM2JSContext* pContext = |
| 505 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 505 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 506 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 506 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Abs"); |
| 507 L"Abs"); | |
| 508 return; | 507 return; |
| 509 } | 508 } |
| 510 | 509 |
| 511 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 510 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 512 if (ValueIsNull(pThis, argOne.get())) { | 511 if (ValueIsNull(pThis, argOne.get())) { |
| 513 FXJSE_Value_SetNull(args.GetReturnValue()); | 512 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 514 return; | 513 return; |
| 515 } | 514 } |
| 516 | 515 |
| 517 FX_DOUBLE dValue = ValueToDouble(pThis, argOne.get()); | 516 FX_DOUBLE dValue = ValueToDouble(pThis, argOne.get()); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum / uCount); | 596 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum / uCount); |
| 598 } | 597 } |
| 599 | 598 |
| 600 // static | 599 // static |
| 601 void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis, | 600 void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis, |
| 602 const CFX_ByteStringC& szFuncName, | 601 const CFX_ByteStringC& szFuncName, |
| 603 CFXJSE_Arguments& args) { | 602 CFXJSE_Arguments& args) { |
| 604 if (args.GetLength() != 1) { | 603 if (args.GetLength() != 1) { |
| 605 CXFA_FM2JSContext* pContext = | 604 CXFA_FM2JSContext* pContext = |
| 606 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 605 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 607 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 606 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Ceil"); |
| 608 L"Ceil"); | |
| 609 return; | 607 return; |
| 610 } | 608 } |
| 611 | 609 |
| 612 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); | 610 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); |
| 613 if (ValueIsNull(pThis, argValue.get())) { | 611 if (ValueIsNull(pThis, argValue.get())) { |
| 614 FXJSE_Value_SetNull(args.GetReturnValue()); | 612 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 615 return; | 613 return; |
| 616 } | 614 } |
| 617 | 615 |
| 618 FXJSE_Value_SetFloat(args.GetReturnValue(), | 616 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 631 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 629 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 632 if (FXJSE_Value_IsNull(argValue.get())) | 630 if (FXJSE_Value_IsNull(argValue.get())) |
| 633 continue; | 631 continue; |
| 634 | 632 |
| 635 if (FXJSE_Value_IsArray(argValue.get())) { | 633 if (FXJSE_Value_IsArray(argValue.get())) { |
| 636 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 634 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 637 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); | 635 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); |
| 638 | 636 |
| 639 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 637 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 640 if (iLength <= 2) { | 638 if (iLength <= 2) { |
| 641 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 639 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 642 return; | 640 return; |
| 643 } | 641 } |
| 644 | 642 |
| 645 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 643 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 646 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 644 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 647 std::unique_ptr<CFXJSE_Value> newPropertyValue( | 645 std::unique_ptr<CFXJSE_Value> newPropertyValue( |
| 648 new CFXJSE_Value(pIsolate)); | 646 new CFXJSE_Value(pIsolate)); |
| 649 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); | 647 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); |
| 650 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); | 648 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); |
| 651 if (FXJSE_Value_IsNull(propertyValue.get())) { | 649 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 681 FXJSE_Value_SetInteger(args.GetReturnValue(), iCount); | 679 FXJSE_Value_SetInteger(args.GetReturnValue(), iCount); |
| 682 } | 680 } |
| 683 | 681 |
| 684 // static | 682 // static |
| 685 void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis, | 683 void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis, |
| 686 const CFX_ByteStringC& szFuncName, | 684 const CFX_ByteStringC& szFuncName, |
| 687 CFXJSE_Arguments& args) { | 685 CFXJSE_Arguments& args) { |
| 688 if (args.GetLength() != 1) { | 686 if (args.GetLength() != 1) { |
| 689 CXFA_FM2JSContext* pContext = | 687 CXFA_FM2JSContext* pContext = |
| 690 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 688 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 691 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 689 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Floor"); |
| 692 L"Floor"); | |
| 693 return; | 690 return; |
| 694 } | 691 } |
| 695 | 692 |
| 696 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); | 693 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); |
| 697 if (ValueIsNull(pThis, argValue.get())) { | 694 if (ValueIsNull(pThis, argValue.get())) { |
| 698 FXJSE_Value_SetNull(args.GetReturnValue()); | 695 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 699 return; | 696 return; |
| 700 } | 697 } |
| 701 | 698 |
| 702 FXJSE_Value_SetFloat(args.GetReturnValue(), | 699 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 715 for (int32_t i = 0; i < args.GetLength(); i++) { | 712 for (int32_t i = 0; i < args.GetLength(); i++) { |
| 716 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 713 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 717 if (FXJSE_Value_IsNull(argValue.get())) | 714 if (FXJSE_Value_IsNull(argValue.get())) |
| 718 continue; | 715 continue; |
| 719 | 716 |
| 720 if (FXJSE_Value_IsArray(argValue.get())) { | 717 if (FXJSE_Value_IsArray(argValue.get())) { |
| 721 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 718 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 722 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); | 719 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); |
| 723 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 720 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 724 if (iLength <= 2) { | 721 if (iLength <= 2) { |
| 725 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 722 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 726 return; | 723 return; |
| 727 } | 724 } |
| 728 | 725 |
| 729 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 726 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 730 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 727 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 731 std::unique_ptr<CFXJSE_Value> newPropertyValue( | 728 std::unique_ptr<CFXJSE_Value> newPropertyValue( |
| 732 new CFXJSE_Value(pIsolate)); | 729 new CFXJSE_Value(pIsolate)); |
| 733 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); | 730 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); |
| 734 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); | 731 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); |
| 735 if (FXJSE_Value_IsNull(propertyValue.get())) { | 732 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 797 for (int32_t i = 0; i < args.GetLength(); i++) { | 794 for (int32_t i = 0; i < args.GetLength(); i++) { |
| 798 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 795 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 799 if (FXJSE_Value_IsNull(argValue.get())) | 796 if (FXJSE_Value_IsNull(argValue.get())) |
| 800 continue; | 797 continue; |
| 801 | 798 |
| 802 if (FXJSE_Value_IsArray(argValue.get())) { | 799 if (FXJSE_Value_IsArray(argValue.get())) { |
| 803 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 800 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 804 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); | 801 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); |
| 805 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 802 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 806 if (iLength <= 2) { | 803 if (iLength <= 2) { |
| 807 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 804 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 808 return; | 805 return; |
| 809 } | 806 } |
| 810 | 807 |
| 811 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 808 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 812 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 809 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 813 std::unique_ptr<CFXJSE_Value> newPropertyValue( | 810 std::unique_ptr<CFXJSE_Value> newPropertyValue( |
| 814 new CFXJSE_Value(pIsolate)); | 811 new CFXJSE_Value(pIsolate)); |
| 815 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); | 812 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); |
| 816 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); | 813 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 2, jsObjectValue.get()); |
| 817 if (FXJSE_Value_IsNull(propertyValue.get())) { | 814 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 FXJSE_Value_SetDouble(args.GetReturnValue(), dMinValue); | 864 FXJSE_Value_SetDouble(args.GetReturnValue(), dMinValue); |
| 868 } | 865 } |
| 869 | 866 |
| 870 // static | 867 // static |
| 871 void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis, | 868 void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis, |
| 872 const CFX_ByteStringC& szFuncName, | 869 const CFX_ByteStringC& szFuncName, |
| 873 CFXJSE_Arguments& args) { | 870 CFXJSE_Arguments& args) { |
| 874 CXFA_FM2JSContext* pContext = | 871 CXFA_FM2JSContext* pContext = |
| 875 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 872 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 876 if (args.GetLength() != 2) { | 873 if (args.GetLength() != 2) { |
| 877 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 874 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Mod"); |
| 878 L"Mod"); | |
| 879 return; | 875 return; |
| 880 } | 876 } |
| 881 | 877 |
| 882 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 878 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 883 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); | 879 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); |
| 884 if (FXJSE_Value_IsNull(argOne.get()) || FXJSE_Value_IsNull(argTwo.get())) { | 880 if (FXJSE_Value_IsNull(argOne.get()) || FXJSE_Value_IsNull(argTwo.get())) { |
| 885 FXJSE_Value_SetNull(args.GetReturnValue()); | 881 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 886 return; | 882 return; |
| 887 } | 883 } |
| 888 | 884 |
| 889 bool argOneResult; | 885 bool argOneResult; |
| 890 FX_DOUBLE dDividend = ExtractDouble(pThis, argOne.get(), &argOneResult); | 886 FX_DOUBLE dDividend = ExtractDouble(pThis, argOne.get(), &argOneResult); |
| 891 bool argTwoResult; | 887 bool argTwoResult; |
| 892 FX_DOUBLE dDivisor = ExtractDouble(pThis, argTwo.get(), &argTwoResult); | 888 FX_DOUBLE dDivisor = ExtractDouble(pThis, argTwo.get(), &argTwoResult); |
| 893 if (!argOneResult || !argTwoResult) { | 889 if (!argOneResult || !argTwoResult) { |
| 894 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 890 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 895 return; | 891 return; |
| 896 } | 892 } |
| 897 | 893 |
| 898 if (dDivisor == 0.0) { | 894 if (dDivisor == 0.0) { |
| 899 pContext->ThrowScriptErrorMessage(XFA_IDS_DIVIDE_ZERO); | 895 pContext->ThrowException(XFA_IDS_DIVIDE_ZERO); |
| 900 return; | 896 return; |
| 901 } | 897 } |
| 902 | 898 |
| 903 FXJSE_Value_SetDouble(args.GetReturnValue(), | 899 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 904 dDividend - dDivisor * (int32_t)(dDividend / dDivisor)); | 900 dDividend - dDivisor * (int32_t)(dDividend / dDivisor)); |
| 905 } | 901 } |
| 906 | 902 |
| 907 // static | 903 // static |
| 908 void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis, | 904 void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis, |
| 909 const CFX_ByteStringC& szFuncName, | 905 const CFX_ByteStringC& szFuncName, |
| 910 CFXJSE_Arguments& args) { | 906 CFXJSE_Arguments& args) { |
| 911 CXFA_FM2JSContext* pContext = | 907 CXFA_FM2JSContext* pContext = |
| 912 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 908 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 913 int32_t argc = args.GetLength(); | 909 int32_t argc = args.GetLength(); |
| 914 if (argc != 1 && argc != 2) { | 910 if (argc != 1 && argc != 2) { |
| 915 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 911 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Round"); |
| 916 L"Round"); | |
| 917 return; | 912 return; |
| 918 } | 913 } |
| 919 | 914 |
| 920 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 915 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 921 if (FXJSE_Value_IsNull(argOne.get())) { | 916 if (FXJSE_Value_IsNull(argOne.get())) { |
| 922 FXJSE_Value_SetNull(args.GetReturnValue()); | 917 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 923 return; | 918 return; |
| 924 } | 919 } |
| 925 | 920 |
| 926 bool dValueRet; | 921 bool dValueRet; |
| 927 FX_DOUBLE dValue = ExtractDouble(pThis, argOne.get(), &dValueRet); | 922 FX_DOUBLE dValue = ExtractDouble(pThis, argOne.get(), &dValueRet); |
| 928 if (!dValueRet) { | 923 if (!dValueRet) { |
| 929 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 924 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 930 return; | 925 return; |
| 931 } | 926 } |
| 932 | 927 |
| 933 uint8_t uPrecision = 0; | 928 uint8_t uPrecision = 0; |
| 934 if (argc == 2) { | 929 if (argc == 2) { |
| 935 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); | 930 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); |
| 936 if (FXJSE_Value_IsNull(argTwo.get())) { | 931 if (FXJSE_Value_IsNull(argTwo.get())) { |
| 937 FXJSE_Value_SetNull(args.GetReturnValue()); | 932 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 938 return; | 933 return; |
| 939 } | 934 } |
| 940 | 935 |
| 941 bool dPrecisionRet; | 936 bool dPrecisionRet; |
| 942 FX_DOUBLE dPrecision = ExtractDouble(pThis, argTwo.get(), &dPrecisionRet); | 937 FX_DOUBLE dPrecision = ExtractDouble(pThis, argTwo.get(), &dPrecisionRet); |
| 943 if (!dPrecisionRet) { | 938 if (!dPrecisionRet) { |
| 944 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 939 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 945 return; | 940 return; |
| 946 } | 941 } |
| 947 | 942 |
| 948 uPrecision = | 943 uPrecision = |
| 949 static_cast<uint8_t>(std::min(std::max(dPrecision, 0.0), 12.0)); | 944 static_cast<uint8_t>(std::min(std::max(dPrecision, 0.0), 12.0)); |
| 950 } | 945 } |
| 951 | 946 |
| 952 CFX_Decimal decimalValue((FX_FLOAT)dValue, uPrecision); | 947 CFX_Decimal decimalValue((FX_FLOAT)dValue, uPrecision); |
| 953 CFX_WideString wsValue = decimalValue; | 948 CFX_WideString wsValue = decimalValue; |
| 954 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 949 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 973 for (int32_t i = 0; i < argc; i++) { | 968 for (int32_t i = 0; i < argc; i++) { |
| 974 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 969 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 975 if (FXJSE_Value_IsNull(argValue.get())) | 970 if (FXJSE_Value_IsNull(argValue.get())) |
| 976 continue; | 971 continue; |
| 977 | 972 |
| 978 if (FXJSE_Value_IsArray(argValue.get())) { | 973 if (FXJSE_Value_IsArray(argValue.get())) { |
| 979 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 974 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 980 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); | 975 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); |
| 981 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 976 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 982 if (iLength <= 2) { | 977 if (iLength <= 2) { |
| 983 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 978 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 984 return; | 979 return; |
| 985 } | 980 } |
| 986 | 981 |
| 987 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 982 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 988 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); | 983 FXJSE_Value_GetObjectPropByIdx(argValue.get(), 1, propertyValue.get()); |
| 989 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 984 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 990 std::unique_ptr<CFXJSE_Value> newPropertyValue( | 985 std::unique_ptr<CFXJSE_Value> newPropertyValue( |
| 991 new CFXJSE_Value(pIsolate)); | 986 new CFXJSE_Value(pIsolate)); |
| 992 if (FXJSE_Value_IsNull(propertyValue.get())) { | 987 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 993 for (int32_t j = 2; j < iLength; j++) { | 988 for (int32_t j = 2; j < iLength; j++) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1038 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum); | 1033 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum); |
| 1039 } | 1034 } |
| 1040 | 1035 |
| 1041 // static | 1036 // static |
| 1042 void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis, | 1037 void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis, |
| 1043 const CFX_ByteStringC& szFuncName, | 1038 const CFX_ByteStringC& szFuncName, |
| 1044 CFXJSE_Arguments& args) { | 1039 CFXJSE_Arguments& args) { |
| 1045 if (args.GetLength() != 0) { | 1040 if (args.GetLength() != 0) { |
| 1046 CXFA_FM2JSContext* pContext = | 1041 CXFA_FM2JSContext* pContext = |
| 1047 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1042 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1048 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1043 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date"); |
| 1049 L"Date"); | |
| 1050 return; | 1044 return; |
| 1051 } | 1045 } |
| 1052 | 1046 |
| 1053 time_t currentTime; | 1047 time_t currentTime; |
| 1054 time(¤tTime); | 1048 time(¤tTime); |
| 1055 struct tm* pTmStruct = gmtime(¤tTime); | 1049 struct tm* pTmStruct = gmtime(¤tTime); |
| 1056 | 1050 |
| 1057 CFX_ByteString bufferYear; | 1051 CFX_ByteString bufferYear; |
| 1058 CFX_ByteString bufferMon; | 1052 CFX_ByteString bufferMon; |
| 1059 CFX_ByteString bufferDay; | 1053 CFX_ByteString bufferDay; |
| 1060 bufferYear.Format("%d", pTmStruct->tm_year + 1900); | 1054 bufferYear.Format("%d", pTmStruct->tm_year + 1900); |
| 1061 bufferMon.Format("%02d", pTmStruct->tm_mon + 1); | 1055 bufferMon.Format("%02d", pTmStruct->tm_mon + 1); |
| 1062 bufferDay.Format("%02d", pTmStruct->tm_mday); | 1056 bufferDay.Format("%02d", pTmStruct->tm_mday); |
| 1063 | 1057 |
| 1064 CFX_ByteString bufferCurrent = bufferYear + bufferMon + bufferDay; | 1058 CFX_ByteString bufferCurrent = bufferYear + bufferMon + bufferDay; |
| 1065 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1059 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1066 DateString2Num(bufferCurrent.AsStringC())); | 1060 DateString2Num(bufferCurrent.AsStringC())); |
| 1067 } | 1061 } |
| 1068 | 1062 |
| 1069 // static | 1063 // static |
| 1070 void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis, | 1064 void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis, |
| 1071 const CFX_ByteStringC& szFuncName, | 1065 const CFX_ByteStringC& szFuncName, |
| 1072 CFXJSE_Arguments& args) { | 1066 CFXJSE_Arguments& args) { |
| 1073 int32_t argc = args.GetLength(); | 1067 int32_t argc = args.GetLength(); |
| 1074 if (argc <= 0 || argc >= 4) { | 1068 if (argc <= 0 || argc >= 4) { |
| 1075 CXFA_FM2JSContext* pContext = | 1069 CXFA_FM2JSContext* pContext = |
| 1076 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1070 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1077 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1071 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date2Num"); |
| 1078 L"Date2Num"); | |
| 1079 return; | 1072 return; |
| 1080 } | 1073 } |
| 1081 | 1074 |
| 1082 std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, args, 0); | 1075 std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, args, 0); |
| 1083 if (ValueIsNull(pThis, dateValue.get())) { | 1076 if (ValueIsNull(pThis, dateValue.get())) { |
| 1084 FXJSE_Value_SetNull(args.GetReturnValue()); | 1077 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1085 return; | 1078 return; |
| 1086 } | 1079 } |
| 1087 | 1080 |
| 1088 CFX_ByteString dateString; | 1081 CFX_ByteString dateString; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 } | 1113 } |
| 1121 | 1114 |
| 1122 // static | 1115 // static |
| 1123 void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis, | 1116 void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis, |
| 1124 const CFX_ByteStringC& szFuncName, | 1117 const CFX_ByteStringC& szFuncName, |
| 1125 CFXJSE_Arguments& args) { | 1118 CFXJSE_Arguments& args) { |
| 1126 int32_t argc = args.GetLength(); | 1119 int32_t argc = args.GetLength(); |
| 1127 if (argc >= 3) { | 1120 if (argc >= 3) { |
| 1128 CXFA_FM2JSContext* pContext = | 1121 CXFA_FM2JSContext* pContext = |
| 1129 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1122 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1130 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1123 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date2Num"); |
| 1131 L"Date2Num"); | |
| 1132 return; | 1124 return; |
| 1133 } | 1125 } |
| 1134 | 1126 |
| 1135 int32_t iStyle = 0; | 1127 int32_t iStyle = 0; |
| 1136 if (argc > 0) { | 1128 if (argc > 0) { |
| 1137 std::unique_ptr<CFXJSE_Value> argStyle = GetSimpleValue(pThis, args, 0); | 1129 std::unique_ptr<CFXJSE_Value> argStyle = GetSimpleValue(pThis, args, 0); |
| 1138 if (FXJSE_Value_IsNull(argStyle.get())) { | 1130 if (FXJSE_Value_IsNull(argStyle.get())) { |
| 1139 FXJSE_Value_SetNull(args.GetReturnValue()); | 1131 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1140 return; | 1132 return; |
| 1141 } | 1133 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1160 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1152 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1161 } | 1153 } |
| 1162 | 1154 |
| 1163 // static | 1155 // static |
| 1164 void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis, | 1156 void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis, |
| 1165 const CFX_ByteStringC& szFuncName, | 1157 const CFX_ByteStringC& szFuncName, |
| 1166 CFXJSE_Arguments& args) { | 1158 CFXJSE_Arguments& args) { |
| 1167 if (args.GetLength() != 1) { | 1159 if (args.GetLength() != 1) { |
| 1168 CXFA_FM2JSContext* pContext = | 1160 CXFA_FM2JSContext* pContext = |
| 1169 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1161 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1170 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1162 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 1171 L"IsoDate2Num"); | 1163 L"IsoDate2Num"); |
| 1172 return; | 1164 return; |
| 1173 } | 1165 } |
| 1174 | 1166 |
| 1175 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 1167 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 1176 if (FXJSE_Value_IsNull(argOne.get())) { | 1168 if (FXJSE_Value_IsNull(argOne.get())) { |
| 1177 FXJSE_Value_SetNull(args.GetReturnValue()); | 1169 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1178 return; | 1170 return; |
| 1179 } | 1171 } |
| 1180 | 1172 |
| 1181 CFX_ByteString szArgString; | 1173 CFX_ByteString szArgString; |
| 1182 ValueToUTF8String(argOne.get(), szArgString); | 1174 ValueToUTF8String(argOne.get(), szArgString); |
| 1183 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1175 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1184 DateString2Num(szArgString.AsStringC())); | 1176 DateString2Num(szArgString.AsStringC())); |
| 1185 } | 1177 } |
| 1186 | 1178 |
| 1187 // static | 1179 // static |
| 1188 void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis, | 1180 void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis, |
| 1189 const CFX_ByteStringC& szFuncName, | 1181 const CFX_ByteStringC& szFuncName, |
| 1190 CFXJSE_Arguments& args) { | 1182 CFXJSE_Arguments& args) { |
| 1191 CXFA_FM2JSContext* pContext = | 1183 CXFA_FM2JSContext* pContext = |
| 1192 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1184 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1193 if (args.GetLength() != 1) { | 1185 if (args.GetLength() != 1) { |
| 1194 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1186 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 1195 L"IsoTime2Num"); | 1187 L"IsoTime2Num"); |
| 1196 return; | 1188 return; |
| 1197 } | 1189 } |
| 1198 | 1190 |
| 1199 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 1191 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 1200 if (ValueIsNull(pThis, argOne.get())) { | 1192 if (ValueIsNull(pThis, argOne.get())) { |
| 1201 FXJSE_Value_SetNull(args.GetReturnValue()); | 1193 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1202 return; | 1194 return; |
| 1203 } | 1195 } |
| 1204 | 1196 |
| 1205 CXFA_Document* pDoc = pContext->GetDocument(); | 1197 CXFA_Document* pDoc = pContext->GetDocument(); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1277 if (formatStr.IsEmpty()) { | 1269 if (formatStr.IsEmpty()) { |
| 1278 formatStr = ""; | 1270 formatStr = ""; |
| 1279 } | 1271 } |
| 1280 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1272 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1281 } else { | 1273 } else { |
| 1282 FXJSE_Value_SetNull(args.GetReturnValue()); | 1274 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1283 } | 1275 } |
| 1284 } else { | 1276 } else { |
| 1285 CXFA_FM2JSContext* pContext = | 1277 CXFA_FM2JSContext* pContext = |
| 1286 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1278 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1287 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1279 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 1288 L"LocalDateFmt"); | 1280 L"LocalDateFmt"); |
| 1289 } | 1281 } |
| 1290 } | 1282 } |
| 1291 | 1283 |
| 1292 // static | 1284 // static |
| 1293 void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis, | 1285 void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis, |
| 1294 const CFX_ByteStringC& szFuncName, | 1286 const CFX_ByteStringC& szFuncName, |
| 1295 CFXJSE_Arguments& args) { | 1287 CFXJSE_Arguments& args) { |
| 1296 int32_t argc = args.GetLength(); | 1288 int32_t argc = args.GetLength(); |
| 1297 if (argc < 3) { | 1289 if (argc < 3) { |
| 1298 FX_BOOL bFlags = FALSE; | 1290 FX_BOOL bFlags = FALSE; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1322 if (formatStr.IsEmpty()) { | 1314 if (formatStr.IsEmpty()) { |
| 1323 formatStr = ""; | 1315 formatStr = ""; |
| 1324 } | 1316 } |
| 1325 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1317 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1326 } else { | 1318 } else { |
| 1327 FXJSE_Value_SetNull(args.GetReturnValue()); | 1319 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1328 } | 1320 } |
| 1329 } else { | 1321 } else { |
| 1330 CXFA_FM2JSContext* pContext = | 1322 CXFA_FM2JSContext* pContext = |
| 1331 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1323 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1332 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1324 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 1333 L"LocalTimeFmt"); | 1325 L"LocalTimeFmt"); |
| 1334 } | 1326 } |
| 1335 } | 1327 } |
| 1336 | 1328 |
| 1337 // static | 1329 // static |
| 1338 void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis, | 1330 void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis, |
| 1339 const CFX_ByteStringC& szFuncName, | 1331 const CFX_ByteStringC& szFuncName, |
| 1340 CFXJSE_Arguments& args) { | 1332 CFXJSE_Arguments& args) { |
| 1341 int32_t argc = args.GetLength(); | 1333 int32_t argc = args.GetLength(); |
| 1342 if ((argc > 0) && (argc < 4)) { | 1334 if ((argc > 0) && (argc < 4)) { |
| 1343 FX_BOOL bFlags = FALSE; | 1335 FX_BOOL bFlags = FALSE; |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1471 szLocalDateString = ""; | 1463 szLocalDateString = ""; |
| 1472 } | 1464 } |
| 1473 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1465 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1474 szLocalDateString.AsStringC()); | 1466 szLocalDateString.AsStringC()); |
| 1475 } else { | 1467 } else { |
| 1476 FXJSE_Value_SetNull(args.GetReturnValue()); | 1468 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1477 } | 1469 } |
| 1478 } else { | 1470 } else { |
| 1479 CXFA_FM2JSContext* pContext = | 1471 CXFA_FM2JSContext* pContext = |
| 1480 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1472 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1481 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1473 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2Date"); |
| 1482 L"Num2Date"); | |
| 1483 } | 1474 } |
| 1484 } | 1475 } |
| 1485 | 1476 |
| 1486 // static | 1477 // static |
| 1487 void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis, | 1478 void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis, |
| 1488 const CFX_ByteStringC& szFuncName, | 1479 const CFX_ByteStringC& szFuncName, |
| 1489 CFXJSE_Arguments& args) { | 1480 CFXJSE_Arguments& args) { |
| 1490 int32_t argc = args.GetLength(); | 1481 int32_t argc = args.GetLength(); |
| 1491 if ((argc > 0) && (argc < 4)) { | 1482 if ((argc > 0) && (argc < 4)) { |
| 1492 FX_BOOL bFlags = FALSE; | 1483 FX_BOOL bFlags = FALSE; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1527 szGMTTimeString = ""; | 1518 szGMTTimeString = ""; |
| 1528 } | 1519 } |
| 1529 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1520 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1530 szGMTTimeString.AsStringC()); | 1521 szGMTTimeString.AsStringC()); |
| 1531 } else { | 1522 } else { |
| 1532 FXJSE_Value_SetNull(args.GetReturnValue()); | 1523 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1533 } | 1524 } |
| 1534 } else { | 1525 } else { |
| 1535 CXFA_FM2JSContext* pContext = | 1526 CXFA_FM2JSContext* pContext = |
| 1536 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1527 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1537 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1528 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2GMTime"); |
| 1538 L"Num2GMTime"); | |
| 1539 } | 1529 } |
| 1540 } | 1530 } |
| 1541 | 1531 |
| 1542 // static | 1532 // static |
| 1543 void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis, | 1533 void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis, |
| 1544 const CFX_ByteStringC& szFuncName, | 1534 const CFX_ByteStringC& szFuncName, |
| 1545 CFXJSE_Arguments& args) { | 1535 CFXJSE_Arguments& args) { |
| 1546 int32_t argc = args.GetLength(); | 1536 int32_t argc = args.GetLength(); |
| 1547 if ((argc > 0) && (argc < 4)) { | 1537 if ((argc > 0) && (argc < 4)) { |
| 1548 FX_BOOL bFlags = FALSE; | 1538 FX_BOOL bFlags = FALSE; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1583 szLocalTimeString = ""; | 1573 szLocalTimeString = ""; |
| 1584 } | 1574 } |
| 1585 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1575 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1586 szLocalTimeString.AsStringC()); | 1576 szLocalTimeString.AsStringC()); |
| 1587 } else { | 1577 } else { |
| 1588 FXJSE_Value_SetNull(args.GetReturnValue()); | 1578 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1589 } | 1579 } |
| 1590 } else { | 1580 } else { |
| 1591 CXFA_FM2JSContext* pContext = | 1581 CXFA_FM2JSContext* pContext = |
| 1592 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1582 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1593 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1583 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2Time"); |
| 1594 L"Num2Time"); | |
| 1595 } | 1584 } |
| 1596 } | 1585 } |
| 1597 | 1586 |
| 1598 // static | 1587 // static |
| 1599 void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis, | 1588 void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis, |
| 1600 const CFX_ByteStringC& szFuncName, | 1589 const CFX_ByteStringC& szFuncName, |
| 1601 CFXJSE_Arguments& args) { | 1590 CFXJSE_Arguments& args) { |
| 1602 if (args.GetLength() == 0) { | 1591 if (args.GetLength() == 0) { |
| 1603 time_t now; | 1592 time_t now; |
| 1604 time(&now); | 1593 time(&now); |
| 1605 struct tm* pGmt = gmtime(&now); | 1594 struct tm* pGmt = gmtime(&now); |
| 1606 int32_t iGMHour = pGmt->tm_hour; | 1595 int32_t iGMHour = pGmt->tm_hour; |
| 1607 int32_t iGMMin = pGmt->tm_min; | 1596 int32_t iGMMin = pGmt->tm_min; |
| 1608 int32_t iGMSec = pGmt->tm_sec; | 1597 int32_t iGMSec = pGmt->tm_sec; |
| 1609 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1598 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1610 ((iGMHour * 3600 + iGMMin * 60 + iGMSec) * 1000)); | 1599 ((iGMHour * 3600 + iGMMin * 60 + iGMSec) * 1000)); |
| 1611 } else { | 1600 } else { |
| 1612 CXFA_FM2JSContext* pContext = | 1601 CXFA_FM2JSContext* pContext = |
| 1613 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1602 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1614 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1603 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Time"); |
| 1615 L"Time"); | |
| 1616 } | 1604 } |
| 1617 } | 1605 } |
| 1618 | 1606 |
| 1619 // static | 1607 // static |
| 1620 void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis, | 1608 void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis, |
| 1621 const CFX_ByteStringC& szFuncName, | 1609 const CFX_ByteStringC& szFuncName, |
| 1622 CFXJSE_Arguments& args) { | 1610 CFXJSE_Arguments& args) { |
| 1623 int32_t argc = args.GetLength(); | 1611 int32_t argc = args.GetLength(); |
| 1624 if ((argc > 0) && (argc < 4)) { | 1612 if ((argc > 0) && (argc < 4)) { |
| 1625 FX_BOOL bFlags = FALSE; | 1613 FX_BOOL bFlags = FALSE; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1702 FXJSE_Value_SetInteger(args.GetReturnValue(), iResult); | 1690 FXJSE_Value_SetInteger(args.GetReturnValue(), iResult); |
| 1703 } else { | 1691 } else { |
| 1704 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 1692 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| 1705 } | 1693 } |
| 1706 } else { | 1694 } else { |
| 1707 FXJSE_Value_SetNull(args.GetReturnValue()); | 1695 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1708 } | 1696 } |
| 1709 } else { | 1697 } else { |
| 1710 CXFA_FM2JSContext* pContext = | 1698 CXFA_FM2JSContext* pContext = |
| 1711 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1699 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1712 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1700 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Time2Num"); |
| 1713 L"Time2Num"); | |
| 1714 } | 1701 } |
| 1715 } | 1702 } |
| 1716 | 1703 |
| 1717 // static | 1704 // static |
| 1718 void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis, | 1705 void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis, |
| 1719 const CFX_ByteStringC& szFuncName, | 1706 const CFX_ByteStringC& szFuncName, |
| 1720 CFXJSE_Arguments& args) { | 1707 CFXJSE_Arguments& args) { |
| 1721 int32_t argc = args.GetLength(); | 1708 int32_t argc = args.GetLength(); |
| 1722 if (argc < 3) { | 1709 if (argc < 3) { |
| 1723 FX_BOOL bFlags = FALSE; | 1710 FX_BOOL bFlags = FALSE; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1747 if (formatStr.IsEmpty()) { | 1734 if (formatStr.IsEmpty()) { |
| 1748 formatStr = ""; | 1735 formatStr = ""; |
| 1749 } | 1736 } |
| 1750 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1737 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1751 } else { | 1738 } else { |
| 1752 FXJSE_Value_SetNull(args.GetReturnValue()); | 1739 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1753 } | 1740 } |
| 1754 } else { | 1741 } else { |
| 1755 CXFA_FM2JSContext* pContext = | 1742 CXFA_FM2JSContext* pContext = |
| 1756 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1743 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 1757 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1744 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"TimeFmt"); |
| 1758 L"TimeFmt"); | |
| 1759 } | 1745 } |
| 1760 } | 1746 } |
| 1761 | 1747 |
| 1762 // static | 1748 // static |
| 1763 FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData, | 1749 FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData, |
| 1764 int32_t iLength, | 1750 int32_t iLength, |
| 1765 int32_t& iStyle, | 1751 int32_t& iStyle, |
| 1766 int32_t& iYear, | 1752 int32_t& iYear, |
| 1767 int32_t& iMonth, | 1753 int32_t& iMonth, |
| 1768 int32_t& iDay) { | 1754 int32_t& iDay) { |
| (...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2563 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2549 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2564 ValueIsNull(pThis, argThree.get())); | 2550 ValueIsNull(pThis, argThree.get())); |
| 2565 if (bFlags) { | 2551 if (bFlags) { |
| 2566 FXJSE_Value_SetNull(args.GetReturnValue()); | 2552 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2567 } else { | 2553 } else { |
| 2568 nPrincipal = ValueToDouble(pThis, argOne.get()); | 2554 nPrincipal = ValueToDouble(pThis, argOne.get()); |
| 2569 nPayment = ValueToDouble(pThis, argTwo.get()); | 2555 nPayment = ValueToDouble(pThis, argTwo.get()); |
| 2570 nPeriods = ValueToDouble(pThis, argThree.get()); | 2556 nPeriods = ValueToDouble(pThis, argThree.get()); |
| 2571 bFlags = ((nPrincipal <= 0) || (nPayment <= 0) || (nPeriods <= 0)); | 2557 bFlags = ((nPrincipal <= 0) || (nPayment <= 0) || (nPeriods <= 0)); |
| 2572 if (bFlags) { | 2558 if (bFlags) { |
| 2573 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2559 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2574 } else { | 2560 } else { |
| 2575 FX_DOUBLE r = | 2561 FX_DOUBLE r = |
| 2576 2 * (nPeriods * nPayment - nPrincipal) / (nPeriods * nPrincipal); | 2562 2 * (nPeriods * nPayment - nPrincipal) / (nPeriods * nPrincipal); |
| 2577 FX_DOUBLE nTemp = 1; | 2563 FX_DOUBLE nTemp = 1; |
| 2578 for (int32_t i = 0; i < nPeriods; ++i) { | 2564 for (int32_t i = 0; i < nPeriods; ++i) { |
| 2579 nTemp *= (1 + r); | 2565 nTemp *= (1 + r); |
| 2580 } | 2566 } |
| 2581 FX_DOUBLE nRet = r * nTemp / (nTemp - 1) - nPayment / nPrincipal; | 2567 FX_DOUBLE nRet = r * nTemp / (nTemp - 1) - nPayment / nPrincipal; |
| 2582 while (fabs(nRet) > kFinancialPrecision && !bFlags) { | 2568 while (fabs(nRet) > kFinancialPrecision && !bFlags) { |
| 2583 FX_DOUBLE nDerivative = 0; | 2569 FX_DOUBLE nDerivative = 0; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2598 } | 2584 } |
| 2599 if (bFlags) { | 2585 if (bFlags) { |
| 2600 FXJSE_Value_SetNull(args.GetReturnValue()); | 2586 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2601 } else { | 2587 } else { |
| 2602 r = r * 12; | 2588 r = r * 12; |
| 2603 FXJSE_Value_SetDouble(args.GetReturnValue(), r); | 2589 FXJSE_Value_SetDouble(args.GetReturnValue(), r); |
| 2604 } | 2590 } |
| 2605 } | 2591 } |
| 2606 } | 2592 } |
| 2607 } else { | 2593 } else { |
| 2608 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2594 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Apr"); |
| 2609 L"Apr"); | |
| 2610 } | 2595 } |
| 2611 } | 2596 } |
| 2612 | 2597 |
| 2613 // static | 2598 // static |
| 2614 void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis, | 2599 void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis, |
| 2615 const CFX_ByteStringC& szFuncName, | 2600 const CFX_ByteStringC& szFuncName, |
| 2616 CFXJSE_Arguments& args) { | 2601 CFXJSE_Arguments& args) { |
| 2617 CXFA_FM2JSContext* pContext = | 2602 CXFA_FM2JSContext* pContext = |
| 2618 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2603 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2619 if (args.GetLength() == 3) { | 2604 if (args.GetLength() == 3) { |
| 2620 FX_BOOL bFlags = FALSE; | 2605 FX_BOOL bFlags = FALSE; |
| 2621 FX_FLOAT nRate = 0; | 2606 FX_FLOAT nRate = 0; |
| 2622 FX_FLOAT nFutureValue = 0; | 2607 FX_FLOAT nFutureValue = 0; |
| 2623 FX_FLOAT nInitAmount = 0; | 2608 FX_FLOAT nInitAmount = 0; |
| 2624 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2609 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2625 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2610 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2626 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2611 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2627 bFlags = | 2612 bFlags = |
| 2628 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2613 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2629 ValueIsNull(pThis, argThree.get())); | 2614 ValueIsNull(pThis, argThree.get())); |
| 2630 if (bFlags) { | 2615 if (bFlags) { |
| 2631 FXJSE_Value_SetNull(args.GetReturnValue()); | 2616 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2632 } else { | 2617 } else { |
| 2633 nRate = ValueToFloat(pThis, argOne.get()); | 2618 nRate = ValueToFloat(pThis, argOne.get()); |
| 2634 nFutureValue = ValueToFloat(pThis, argTwo.get()); | 2619 nFutureValue = ValueToFloat(pThis, argTwo.get()); |
| 2635 nInitAmount = ValueToFloat(pThis, argThree.get()); | 2620 nInitAmount = ValueToFloat(pThis, argThree.get()); |
| 2636 bFlags = ((nRate <= 0) || (nFutureValue <= 0) || (nInitAmount <= 0)); | 2621 bFlags = ((nRate <= 0) || (nFutureValue <= 0) || (nInitAmount <= 0)); |
| 2637 if (bFlags) { | 2622 if (bFlags) { |
| 2638 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2623 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2639 } else { | 2624 } else { |
| 2640 FXJSE_Value_SetFloat(args.GetReturnValue(), | 2625 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| 2641 FXSYS_log((FX_FLOAT)(nFutureValue / nInitAmount)) / | 2626 FXSYS_log((FX_FLOAT)(nFutureValue / nInitAmount)) / |
| 2642 FXSYS_log((FX_FLOAT)(1 + nRate))); | 2627 FXSYS_log((FX_FLOAT)(1 + nRate))); |
| 2643 } | 2628 } |
| 2644 } | 2629 } |
| 2645 } else { | 2630 } else { |
| 2646 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2631 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"CTerm"); |
| 2647 L"CTerm"); | |
| 2648 } | 2632 } |
| 2649 } | 2633 } |
| 2650 | 2634 |
| 2651 // static | 2635 // static |
| 2652 void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis, | 2636 void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis, |
| 2653 const CFX_ByteStringC& szFuncName, | 2637 const CFX_ByteStringC& szFuncName, |
| 2654 CFXJSE_Arguments& args) { | 2638 CFXJSE_Arguments& args) { |
| 2655 CXFA_FM2JSContext* pContext = | 2639 CXFA_FM2JSContext* pContext = |
| 2656 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2640 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2657 if (args.GetLength() == 3) { | 2641 if (args.GetLength() == 3) { |
| 2658 FX_BOOL bFlags = FALSE; | 2642 FX_BOOL bFlags = FALSE; |
| 2659 FX_DOUBLE nAmount = 0; | 2643 FX_DOUBLE nAmount = 0; |
| 2660 FX_DOUBLE nRate = 0; | 2644 FX_DOUBLE nRate = 0; |
| 2661 FX_DOUBLE nPeriod = 0; | 2645 FX_DOUBLE nPeriod = 0; |
| 2662 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2646 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2663 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2647 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2664 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2648 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2665 bFlags = | 2649 bFlags = |
| 2666 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2650 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2667 ValueIsNull(pThis, argThree.get())); | 2651 ValueIsNull(pThis, argThree.get())); |
| 2668 if (bFlags) { | 2652 if (bFlags) { |
| 2669 FXJSE_Value_SetNull(args.GetReturnValue()); | 2653 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2670 } else { | 2654 } else { |
| 2671 nAmount = ValueToDouble(pThis, argOne.get()); | 2655 nAmount = ValueToDouble(pThis, argOne.get()); |
| 2672 nRate = ValueToDouble(pThis, argTwo.get()); | 2656 nRate = ValueToDouble(pThis, argTwo.get()); |
| 2673 nPeriod = ValueToDouble(pThis, argThree.get()); | 2657 nPeriod = ValueToDouble(pThis, argThree.get()); |
| 2674 bFlags = ((nRate < 0) || (nPeriod <= 0) || (nAmount <= 0)); | 2658 bFlags = ((nRate < 0) || (nPeriod <= 0) || (nAmount <= 0)); |
| 2675 if (bFlags) { | 2659 if (bFlags) { |
| 2676 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2660 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2677 } else { | 2661 } else { |
| 2678 FX_DOUBLE dResult = 0; | 2662 FX_DOUBLE dResult = 0; |
| 2679 if (!nRate) { | 2663 if (!nRate) { |
| 2680 dResult = nAmount * nPeriod; | 2664 dResult = nAmount * nPeriod; |
| 2681 } else { | 2665 } else { |
| 2682 FX_DOUBLE nTemp = 1; | 2666 FX_DOUBLE nTemp = 1; |
| 2683 for (int i = 0; i < nPeriod; ++i) { | 2667 for (int i = 0; i < nPeriod; ++i) { |
| 2684 nTemp *= 1 + nRate; | 2668 nTemp *= 1 + nRate; |
| 2685 } | 2669 } |
| 2686 dResult = nAmount * (nTemp - 1) / nRate; | 2670 dResult = nAmount * (nTemp - 1) / nRate; |
| 2687 } | 2671 } |
| 2688 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); | 2672 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); |
| 2689 } | 2673 } |
| 2690 } | 2674 } |
| 2691 } else { | 2675 } else { |
| 2692 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2676 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"FV"); |
| 2693 L"FV"); | |
| 2694 } | 2677 } |
| 2695 } | 2678 } |
| 2696 | 2679 |
| 2697 // static | 2680 // static |
| 2698 void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis, | 2681 void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis, |
| 2699 const CFX_ByteStringC& szFuncName, | 2682 const CFX_ByteStringC& szFuncName, |
| 2700 CFXJSE_Arguments& args) { | 2683 CFXJSE_Arguments& args) { |
| 2701 CXFA_FM2JSContext* pContext = | 2684 CXFA_FM2JSContext* pContext = |
| 2702 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2685 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2703 if (args.GetLength() == 5) { | 2686 if (args.GetLength() == 5) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2721 FXJSE_Value_SetNull(args.GetReturnValue()); | 2704 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2722 } else { | 2705 } else { |
| 2723 nPrincpalAmount = ValueToFloat(pThis, argOne.get()); | 2706 nPrincpalAmount = ValueToFloat(pThis, argOne.get()); |
| 2724 nRate = ValueToFloat(pThis, argTwo.get()); | 2707 nRate = ValueToFloat(pThis, argTwo.get()); |
| 2725 nPayment = ValueToFloat(pThis, argThree.get()); | 2708 nPayment = ValueToFloat(pThis, argThree.get()); |
| 2726 nFirstMonth = ValueToFloat(pThis, argFour.get()); | 2709 nFirstMonth = ValueToFloat(pThis, argFour.get()); |
| 2727 nNumberOfMonths = ValueToFloat(pThis, argFive.get()); | 2710 nNumberOfMonths = ValueToFloat(pThis, argFive.get()); |
| 2728 bFlags = ((nPrincpalAmount <= 0) || (nRate <= 0) || (nPayment <= 0) || | 2711 bFlags = ((nPrincpalAmount <= 0) || (nRate <= 0) || (nPayment <= 0) || |
| 2729 (nFirstMonth < 0) || (nNumberOfMonths < 0)); | 2712 (nFirstMonth < 0) || (nNumberOfMonths < 0)); |
| 2730 if (bFlags) { | 2713 if (bFlags) { |
| 2731 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2714 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2732 } else { | 2715 } else { |
| 2733 FX_FLOAT fResult = 0; | 2716 FX_FLOAT fResult = 0; |
| 2734 FX_FLOAT nRateOfMonth = nRate / 12; | 2717 FX_FLOAT nRateOfMonth = nRate / 12; |
| 2735 int32_t iNums = | 2718 int32_t iNums = |
| 2736 (int32_t)((FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount)) - | 2719 (int32_t)((FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount)) - |
| 2737 FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount - | 2720 FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount - |
| 2738 nRateOfMonth))) / | 2721 nRateOfMonth))) / |
| 2739 FXSYS_log10((FX_FLOAT)(1 + nRateOfMonth))); | 2722 FXSYS_log10((FX_FLOAT)(1 + nRateOfMonth))); |
| 2740 int32_t iEnd = (int32_t)(nFirstMonth + nNumberOfMonths - 1); | 2723 int32_t iEnd = (int32_t)(nFirstMonth + nNumberOfMonths - 1); |
| 2741 if (iEnd > iNums) { | 2724 if (iEnd > iNums) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2754 for (; i < iEnd; ++i) { | 2737 for (; i < iEnd; ++i) { |
| 2755 nSum += nPrincpalAmount * nRateOfMonth; | 2738 nSum += nPrincpalAmount * nRateOfMonth; |
| 2756 nPrincpalAmount -= nPayment - nPrincpalAmount * nRateOfMonth; | 2739 nPrincpalAmount -= nPayment - nPrincpalAmount * nRateOfMonth; |
| 2757 } | 2740 } |
| 2758 fResult = nSum; | 2741 fResult = nSum; |
| 2759 } | 2742 } |
| 2760 FXJSE_Value_SetFloat(args.GetReturnValue(), fResult); | 2743 FXJSE_Value_SetFloat(args.GetReturnValue(), fResult); |
| 2761 } | 2744 } |
| 2762 } | 2745 } |
| 2763 } else { | 2746 } else { |
| 2764 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2747 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"IPmt"); |
| 2765 L"IPmt"); | |
| 2766 } | 2748 } |
| 2767 } | 2749 } |
| 2768 | 2750 |
| 2769 // static | 2751 // static |
| 2770 void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis, | 2752 void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis, |
| 2771 const CFX_ByteStringC& szFuncName, | 2753 const CFX_ByteStringC& szFuncName, |
| 2772 CFXJSE_Arguments& args) { | 2754 CFXJSE_Arguments& args) { |
| 2773 CXFA_FM2JSContext* pContext = | 2755 CXFA_FM2JSContext* pContext = |
| 2774 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2756 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2775 int32_t argc = args.GetLength(); | 2757 int32_t argc = args.GetLength(); |
| 2776 if (argc > 2) { | 2758 if (argc > 2) { |
| 2777 FX_BOOL bFlags = FALSE; | 2759 FX_BOOL bFlags = FALSE; |
| 2778 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; | 2760 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; |
| 2779 for (int32_t i = 0; i < argc; i++) { | 2761 for (int32_t i = 0; i < argc; i++) { |
| 2780 argValues.push_back(GetSimpleValue(pThis, args, i)); | 2762 argValues.push_back(GetSimpleValue(pThis, args, i)); |
| 2781 if (ValueIsNull(pThis, argValues[i].get())) { | 2763 if (ValueIsNull(pThis, argValues[i].get())) { |
| 2782 bFlags = TRUE; | 2764 bFlags = TRUE; |
| 2783 } | 2765 } |
| 2784 } | 2766 } |
| 2785 if (!bFlags && argc > 0) { | 2767 if (!bFlags && argc > 0) { |
| 2786 FX_DOUBLE nRate = 0; | 2768 FX_DOUBLE nRate = 0; |
| 2787 nRate = ValueToDouble(pThis, argValues[0].get()); | 2769 nRate = ValueToDouble(pThis, argValues[0].get()); |
| 2788 if (nRate <= 0) { | 2770 if (nRate <= 0) { |
| 2789 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2771 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2790 } else { | 2772 } else { |
| 2791 FX_DOUBLE* pData = FX_Alloc(FX_DOUBLE, argc - 1); | 2773 FX_DOUBLE* pData = FX_Alloc(FX_DOUBLE, argc - 1); |
| 2792 for (int32_t i = 1; i < argc; i++) { | 2774 for (int32_t i = 1; i < argc; i++) { |
| 2793 pData[i - 1] = ValueToDouble(pThis, argValues[i].get()); | 2775 pData[i - 1] = ValueToDouble(pThis, argValues[i].get()); |
| 2794 } | 2776 } |
| 2795 FX_DOUBLE nSum = 0; | 2777 FX_DOUBLE nSum = 0; |
| 2796 int32_t iIndex = 0; | 2778 int32_t iIndex = 0; |
| 2797 for (int32_t i = 0; i < argc - 1; i++) { | 2779 for (int32_t i = 0; i < argc - 1; i++) { |
| 2798 FX_DOUBLE nTemp = 1; | 2780 FX_DOUBLE nTemp = 1; |
| 2799 for (int32_t j = 0; j <= i; j++) { | 2781 for (int32_t j = 0; j <= i; j++) { |
| 2800 nTemp *= 1 + nRate; | 2782 nTemp *= 1 + nRate; |
| 2801 } | 2783 } |
| 2802 FX_DOUBLE nNum = *(pData + iIndex++); | 2784 FX_DOUBLE nNum = *(pData + iIndex++); |
| 2803 nSum += nNum / nTemp; | 2785 nSum += nNum / nTemp; |
| 2804 } | 2786 } |
| 2805 FXJSE_Value_SetDouble(args.GetReturnValue(), nSum); | 2787 FXJSE_Value_SetDouble(args.GetReturnValue(), nSum); |
| 2806 FX_Free(pData); | 2788 FX_Free(pData); |
| 2807 pData = 0; | 2789 pData = 0; |
| 2808 } | 2790 } |
| 2809 } else { | 2791 } else { |
| 2810 FXJSE_Value_SetNull(args.GetReturnValue()); | 2792 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2811 } | 2793 } |
| 2812 } else { | 2794 } else { |
| 2813 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2795 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"NPV"); |
| 2814 L"NPV"); | |
| 2815 } | 2796 } |
| 2816 } | 2797 } |
| 2817 | 2798 |
| 2818 // static | 2799 // static |
| 2819 void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis, | 2800 void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis, |
| 2820 const CFX_ByteStringC& szFuncName, | 2801 const CFX_ByteStringC& szFuncName, |
| 2821 CFXJSE_Arguments& args) { | 2802 CFXJSE_Arguments& args) { |
| 2822 CXFA_FM2JSContext* pContext = | 2803 CXFA_FM2JSContext* pContext = |
| 2823 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2804 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2824 if (args.GetLength() == 3) { | 2805 if (args.GetLength() == 3) { |
| 2825 FX_BOOL bFlags = FALSE; | 2806 FX_BOOL bFlags = FALSE; |
| 2826 FX_FLOAT nPrincipal = 0; | 2807 FX_FLOAT nPrincipal = 0; |
| 2827 FX_FLOAT nRate = 0; | 2808 FX_FLOAT nRate = 0; |
| 2828 FX_FLOAT nPeriods = 0; | 2809 FX_FLOAT nPeriods = 0; |
| 2829 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2810 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2830 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2811 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2831 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2812 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2832 bFlags = | 2813 bFlags = |
| 2833 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2814 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2834 ValueIsNull(pThis, argThree.get())); | 2815 ValueIsNull(pThis, argThree.get())); |
| 2835 if (bFlags) { | 2816 if (bFlags) { |
| 2836 FXJSE_Value_SetNull(args.GetReturnValue()); | 2817 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2837 } else { | 2818 } else { |
| 2838 nPrincipal = ValueToFloat(pThis, argOne.get()); | 2819 nPrincipal = ValueToFloat(pThis, argOne.get()); |
| 2839 nRate = ValueToFloat(pThis, argTwo.get()); | 2820 nRate = ValueToFloat(pThis, argTwo.get()); |
| 2840 nPeriods = ValueToFloat(pThis, argThree.get()); | 2821 nPeriods = ValueToFloat(pThis, argThree.get()); |
| 2841 bFlags = ((nPrincipal <= 0) || (nRate <= 0) || (nPeriods <= 0)); | 2822 bFlags = ((nPrincipal <= 0) || (nRate <= 0) || (nPeriods <= 0)); |
| 2842 if (bFlags) { | 2823 if (bFlags) { |
| 2843 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2824 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2844 } else { | 2825 } else { |
| 2845 FX_FLOAT nSum = 0; | 2826 FX_FLOAT nSum = 0; |
| 2846 FX_FLOAT nTmp = 1 + nRate; | 2827 FX_FLOAT nTmp = 1 + nRate; |
| 2847 nSum = nTmp; | 2828 nSum = nTmp; |
| 2848 for (int32_t i = 0; i < nPeriods - 1; ++i) { | 2829 for (int32_t i = 0; i < nPeriods - 1; ++i) { |
| 2849 nSum *= nTmp; | 2830 nSum *= nTmp; |
| 2850 } | 2831 } |
| 2851 FXJSE_Value_SetFloat(args.GetReturnValue(), | 2832 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| 2852 (nPrincipal * nRate * nSum) / (nSum - 1)); | 2833 (nPrincipal * nRate * nSum) / (nSum - 1)); |
| 2853 } | 2834 } |
| 2854 } | 2835 } |
| 2855 } else { | 2836 } else { |
| 2856 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2837 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Pmt"); |
| 2857 L"Pmt"); | |
| 2858 } | 2838 } |
| 2859 } | 2839 } |
| 2860 | 2840 |
| 2861 // static | 2841 // static |
| 2862 void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis, | 2842 void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis, |
| 2863 const CFX_ByteStringC& szFuncName, | 2843 const CFX_ByteStringC& szFuncName, |
| 2864 CFXJSE_Arguments& args) { | 2844 CFXJSE_Arguments& args) { |
| 2865 CXFA_FM2JSContext* pContext = | 2845 CXFA_FM2JSContext* pContext = |
| 2866 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2846 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2867 if (args.GetLength() == 5) { | 2847 if (args.GetLength() == 5) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2885 FXJSE_Value_SetNull(args.GetReturnValue()); | 2865 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2886 } else { | 2866 } else { |
| 2887 nPrincpalAmount = ValueToFloat(pThis, argOne.get()); | 2867 nPrincpalAmount = ValueToFloat(pThis, argOne.get()); |
| 2888 nRate = ValueToFloat(pThis, argTwo.get()); | 2868 nRate = ValueToFloat(pThis, argTwo.get()); |
| 2889 nPayment = ValueToFloat(pThis, argThree.get()); | 2869 nPayment = ValueToFloat(pThis, argThree.get()); |
| 2890 nFirstMonth = ValueToFloat(pThis, argFour.get()); | 2870 nFirstMonth = ValueToFloat(pThis, argFour.get()); |
| 2891 nNumberOfMonths = ValueToFloat(pThis, argFive.get()); | 2871 nNumberOfMonths = ValueToFloat(pThis, argFive.get()); |
| 2892 bFlags = ((nPrincpalAmount <= 0) || (nRate <= 0) || (nPayment <= 0) || | 2872 bFlags = ((nPrincpalAmount <= 0) || (nRate <= 0) || (nPayment <= 0) || |
| 2893 (nFirstMonth < 0) || (nNumberOfMonths < 0)); | 2873 (nFirstMonth < 0) || (nNumberOfMonths < 0)); |
| 2894 if (bFlags) { | 2874 if (bFlags) { |
| 2895 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2875 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2896 } else { | 2876 } else { |
| 2897 int32_t iEnd = (int32_t)(nFirstMonth + nNumberOfMonths - 1); | 2877 int32_t iEnd = (int32_t)(nFirstMonth + nNumberOfMonths - 1); |
| 2898 FX_FLOAT nSum = 0; | 2878 FX_FLOAT nSum = 0; |
| 2899 FX_FLOAT nRateOfMonth = nRate / 12; | 2879 FX_FLOAT nRateOfMonth = nRate / 12; |
| 2900 int32_t iNums = | 2880 int32_t iNums = |
| 2901 (int32_t)((FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount)) - | 2881 (int32_t)((FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount)) - |
| 2902 FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount - | 2882 FXSYS_log10((FX_FLOAT)(nPayment / nPrincpalAmount - |
| 2903 nRateOfMonth))) / | 2883 nRateOfMonth))) / |
| 2904 FXSYS_log10((FX_FLOAT)(1 + nRateOfMonth))); | 2884 FXSYS_log10((FX_FLOAT)(1 + nRateOfMonth))); |
| 2905 if (iEnd > iNums) { | 2885 if (iEnd > iNums) { |
| 2906 iEnd = iNums; | 2886 iEnd = iNums; |
| 2907 } | 2887 } |
| 2908 if (nPayment < nPrincpalAmount * nRateOfMonth) { | 2888 if (nPayment < nPrincpalAmount * nRateOfMonth) { |
| 2909 bFlags = TRUE; | 2889 bFlags = TRUE; |
| 2910 } | 2890 } |
| 2911 if (!bFlags) { | 2891 if (!bFlags) { |
| 2912 int32_t i = 0; | 2892 int32_t i = 0; |
| 2913 for (i = 0; i < nFirstMonth - 1; ++i) { | 2893 for (i = 0; i < nFirstMonth - 1; ++i) { |
| 2914 nPrincpalAmount -= nPayment - nPrincpalAmount * nRateOfMonth; | 2894 nPrincpalAmount -= nPayment - nPrincpalAmount * nRateOfMonth; |
| 2915 } | 2895 } |
| 2916 FX_FLOAT nTemp = 0; | 2896 FX_FLOAT nTemp = 0; |
| 2917 for (; i < iEnd; ++i) { | 2897 for (; i < iEnd; ++i) { |
| 2918 nTemp = nPayment - nPrincpalAmount * nRateOfMonth; | 2898 nTemp = nPayment - nPrincpalAmount * nRateOfMonth; |
| 2919 nSum += nTemp; | 2899 nSum += nTemp; |
| 2920 nPrincpalAmount -= nTemp; | 2900 nPrincpalAmount -= nTemp; |
| 2921 } | 2901 } |
| 2922 FXJSE_Value_SetFloat(args.GetReturnValue(), nSum); | 2902 FXJSE_Value_SetFloat(args.GetReturnValue(), nSum); |
| 2923 } else { | 2903 } else { |
| 2924 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2904 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2925 } | 2905 } |
| 2926 } | 2906 } |
| 2927 } | 2907 } |
| 2928 } else { | 2908 } else { |
| 2929 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2909 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"PPmt"); |
| 2930 L"PPmt"); | |
| 2931 } | 2910 } |
| 2932 } | 2911 } |
| 2933 | 2912 |
| 2934 // static | 2913 // static |
| 2935 void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis, | 2914 void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis, |
| 2936 const CFX_ByteStringC& szFuncName, | 2915 const CFX_ByteStringC& szFuncName, |
| 2937 CFXJSE_Arguments& args) { | 2916 CFXJSE_Arguments& args) { |
| 2938 CXFA_FM2JSContext* pContext = | 2917 CXFA_FM2JSContext* pContext = |
| 2939 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2918 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2940 if (args.GetLength() == 3) { | 2919 if (args.GetLength() == 3) { |
| 2941 FX_BOOL bFlags = FALSE; | 2920 FX_BOOL bFlags = FALSE; |
| 2942 FX_DOUBLE nAmount = 0; | 2921 FX_DOUBLE nAmount = 0; |
| 2943 FX_DOUBLE nRate = 0; | 2922 FX_DOUBLE nRate = 0; |
| 2944 FX_DOUBLE nPeriod = 0; | 2923 FX_DOUBLE nPeriod = 0; |
| 2945 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2924 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2946 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2925 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2947 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2926 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2948 bFlags = | 2927 bFlags = |
| 2949 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2928 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2950 ValueIsNull(pThis, argThree.get())); | 2929 ValueIsNull(pThis, argThree.get())); |
| 2951 if (bFlags) { | 2930 if (bFlags) { |
| 2952 FXJSE_Value_SetNull(args.GetReturnValue()); | 2931 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2953 } else { | 2932 } else { |
| 2954 nAmount = ValueToDouble(pThis, argOne.get()); | 2933 nAmount = ValueToDouble(pThis, argOne.get()); |
| 2955 nRate = ValueToDouble(pThis, argTwo.get()); | 2934 nRate = ValueToDouble(pThis, argTwo.get()); |
| 2956 nPeriod = ValueToDouble(pThis, argThree.get()); | 2935 nPeriod = ValueToDouble(pThis, argThree.get()); |
| 2957 bFlags = ((nAmount <= 0) || (nRate < 0) || (nPeriod <= 0)); | 2936 bFlags = ((nAmount <= 0) || (nRate < 0) || (nPeriod <= 0)); |
| 2958 if (bFlags) { | 2937 if (bFlags) { |
| 2959 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2938 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 2960 } else { | 2939 } else { |
| 2961 FX_DOUBLE nTemp = 1; | 2940 FX_DOUBLE nTemp = 1; |
| 2962 for (int32_t i = 0; i < nPeriod; ++i) { | 2941 for (int32_t i = 0; i < nPeriod; ++i) { |
| 2963 nTemp *= 1 + nRate; | 2942 nTemp *= 1 + nRate; |
| 2964 } | 2943 } |
| 2965 nTemp = 1 / nTemp; | 2944 nTemp = 1 / nTemp; |
| 2966 FXJSE_Value_SetDouble(args.GetReturnValue(), | 2945 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 2967 nAmount * ((1 - nTemp) / nRate)); | 2946 nAmount * ((1 - nTemp) / nRate)); |
| 2968 } | 2947 } |
| 2969 } | 2948 } |
| 2970 } else { | 2949 } else { |
| 2971 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2950 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"PV"); |
| 2972 L"PV"); | |
| 2973 } | 2951 } |
| 2974 } | 2952 } |
| 2975 | 2953 |
| 2976 // static | 2954 // static |
| 2977 void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis, | 2955 void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis, |
| 2978 const CFX_ByteStringC& szFuncName, | 2956 const CFX_ByteStringC& szFuncName, |
| 2979 CFXJSE_Arguments& args) { | 2957 CFXJSE_Arguments& args) { |
| 2980 CXFA_FM2JSContext* pContext = | 2958 CXFA_FM2JSContext* pContext = |
| 2981 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2959 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 2982 if (args.GetLength() == 3) { | 2960 if (args.GetLength() == 3) { |
| 2983 FX_BOOL bFlags = FALSE; | 2961 FX_BOOL bFlags = FALSE; |
| 2984 FX_FLOAT nFuture = 0; | 2962 FX_FLOAT nFuture = 0; |
| 2985 FX_FLOAT nPresent = 0; | 2963 FX_FLOAT nPresent = 0; |
| 2986 FX_FLOAT nTotalNumber = 0; | 2964 FX_FLOAT nTotalNumber = 0; |
| 2987 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2965 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2988 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2966 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2989 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2967 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2990 bFlags = | 2968 bFlags = |
| 2991 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2969 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 2992 ValueIsNull(pThis, argThree.get())); | 2970 ValueIsNull(pThis, argThree.get())); |
| 2993 if (bFlags) { | 2971 if (bFlags) { |
| 2994 FXJSE_Value_SetNull(args.GetReturnValue()); | 2972 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 2995 } else { | 2973 } else { |
| 2996 nFuture = ValueToFloat(pThis, argOne.get()); | 2974 nFuture = ValueToFloat(pThis, argOne.get()); |
| 2997 nPresent = ValueToFloat(pThis, argTwo.get()); | 2975 nPresent = ValueToFloat(pThis, argTwo.get()); |
| 2998 nTotalNumber = ValueToFloat(pThis, argThree.get()); | 2976 nTotalNumber = ValueToFloat(pThis, argThree.get()); |
| 2999 bFlags = ((nFuture <= 0) || (nPresent < 0) || (nTotalNumber <= 0)); | 2977 bFlags = ((nFuture <= 0) || (nPresent < 0) || (nTotalNumber <= 0)); |
| 3000 if (bFlags) { | 2978 if (bFlags) { |
| 3001 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 2979 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3002 } else { | 2980 } else { |
| 3003 FXJSE_Value_SetFloat(args.GetReturnValue(), | 2981 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| 3004 (FXSYS_pow((FX_FLOAT)(nFuture / nPresent), | 2982 (FXSYS_pow((FX_FLOAT)(nFuture / nPresent), |
| 3005 (FX_FLOAT)(1 / nTotalNumber)) - | 2983 (FX_FLOAT)(1 / nTotalNumber)) - |
| 3006 1)); | 2984 1)); |
| 3007 } | 2985 } |
| 3008 } | 2986 } |
| 3009 } else { | 2987 } else { |
| 3010 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2988 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Rate"); |
| 3011 L"Rate"); | |
| 3012 } | 2989 } |
| 3013 } | 2990 } |
| 3014 | 2991 |
| 3015 // static | 2992 // static |
| 3016 void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis, | 2993 void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis, |
| 3017 const CFX_ByteStringC& szFuncName, | 2994 const CFX_ByteStringC& szFuncName, |
| 3018 CFXJSE_Arguments& args) { | 2995 CFXJSE_Arguments& args) { |
| 3019 CXFA_FM2JSContext* pContext = | 2996 CXFA_FM2JSContext* pContext = |
| 3020 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2997 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3021 if (args.GetLength() == 3) { | 2998 if (args.GetLength() == 3) { |
| 3022 FX_BOOL bFlags = FALSE; | 2999 FX_BOOL bFlags = FALSE; |
| 3023 FX_FLOAT nMount = 0; | 3000 FX_FLOAT nMount = 0; |
| 3024 FX_FLOAT nRate = 0; | 3001 FX_FLOAT nRate = 0; |
| 3025 FX_FLOAT nFuture = 0; | 3002 FX_FLOAT nFuture = 0; |
| 3026 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3003 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3027 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 3004 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3028 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 3005 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 3029 bFlags = | 3006 bFlags = |
| 3030 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 3007 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| 3031 ValueIsNull(pThis, argThree.get())); | 3008 ValueIsNull(pThis, argThree.get())); |
| 3032 if (bFlags) { | 3009 if (bFlags) { |
| 3033 FXJSE_Value_SetNull(args.GetReturnValue()); | 3010 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3034 } else { | 3011 } else { |
| 3035 nMount = ValueToFloat(pThis, argOne.get()); | 3012 nMount = ValueToFloat(pThis, argOne.get()); |
| 3036 nRate = ValueToFloat(pThis, argTwo.get()); | 3013 nRate = ValueToFloat(pThis, argTwo.get()); |
| 3037 nFuture = ValueToFloat(pThis, argThree.get()); | 3014 nFuture = ValueToFloat(pThis, argThree.get()); |
| 3038 bFlags = ((nMount <= 0) || (nRate <= 0) || (nFuture <= 0)); | 3015 bFlags = ((nMount <= 0) || (nRate <= 0) || (nFuture <= 0)); |
| 3039 if (bFlags) { | 3016 if (bFlags) { |
| 3040 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 3017 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3041 } else { | 3018 } else { |
| 3042 FXJSE_Value_SetFloat( | 3019 FXJSE_Value_SetFloat( |
| 3043 args.GetReturnValue(), | 3020 args.GetReturnValue(), |
| 3044 (FXSYS_log((FX_FLOAT)(nFuture / nMount * nRate) + 1) / | 3021 (FXSYS_log((FX_FLOAT)(nFuture / nMount * nRate) + 1) / |
| 3045 FXSYS_log((FX_FLOAT)(1 + nRate)))); | 3022 FXSYS_log((FX_FLOAT)(1 + nRate)))); |
| 3046 } | 3023 } |
| 3047 } | 3024 } |
| 3048 } else { | 3025 } else { |
| 3049 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3026 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Term"); |
| 3050 L"Term"); | |
| 3051 } | 3027 } |
| 3052 } | 3028 } |
| 3053 | 3029 |
| 3054 // static | 3030 // static |
| 3055 void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis, | 3031 void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis, |
| 3056 const CFX_ByteStringC& szFuncName, | 3032 const CFX_ByteStringC& szFuncName, |
| 3057 CFXJSE_Arguments& args) { | 3033 CFXJSE_Arguments& args) { |
| 3058 CXFA_FM2JSContext* pContext = | 3034 CXFA_FM2JSContext* pContext = |
| 3059 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3035 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3060 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3036 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3127 } | 3103 } |
| 3128 iArgIndex++; | 3104 iArgIndex++; |
| 3129 } | 3105 } |
| 3130 if (!bFound) { | 3106 if (!bFound) { |
| 3131 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); | 3107 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); |
| 3132 } | 3108 } |
| 3133 } | 3109 } |
| 3134 } else { | 3110 } else { |
| 3135 CXFA_FM2JSContext* pContext = | 3111 CXFA_FM2JSContext* pContext = |
| 3136 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3112 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3137 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3113 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Choose"); |
| 3138 L"Choose"); | |
| 3139 } | 3114 } |
| 3140 } | 3115 } |
| 3141 | 3116 |
| 3142 // static | 3117 // static |
| 3143 void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis, | 3118 void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis, |
| 3144 const CFX_ByteStringC& szFuncName, | 3119 const CFX_ByteStringC& szFuncName, |
| 3145 CFXJSE_Arguments& args) { | 3120 CFXJSE_Arguments& args) { |
| 3146 if (args.GetLength() == 1) { | 3121 if (args.GetLength() == 1) { |
| 3147 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 3122 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 3148 FXJSE_Value_SetInteger(args.GetReturnValue(), | 3123 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 3149 FXJSE_Value_IsObject(argOne.get())); | 3124 FXJSE_Value_IsObject(argOne.get())); |
| 3150 } else { | 3125 } else { |
| 3151 CXFA_FM2JSContext* pContext = | 3126 CXFA_FM2JSContext* pContext = |
| 3152 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3127 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3153 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3128 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Exists"); |
| 3154 L"Exists"); | |
| 3155 } | 3129 } |
| 3156 } | 3130 } |
| 3157 | 3131 |
| 3158 // static | 3132 // static |
| 3159 void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis, | 3133 void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis, |
| 3160 const CFX_ByteStringC& szFuncName, | 3134 const CFX_ByteStringC& szFuncName, |
| 3161 CFXJSE_Arguments& args) { | 3135 CFXJSE_Arguments& args) { |
| 3162 if (args.GetLength() == 1) { | 3136 if (args.GetLength() == 1) { |
| 3163 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3137 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3164 if (FXJSE_Value_IsUTF8String(argOne.get())) { | 3138 if (FXJSE_Value_IsUTF8String(argOne.get())) { |
| 3165 CFX_ByteString valueStr; | 3139 CFX_ByteString valueStr; |
| 3166 FXJSE_Value_ToUTF8String(argOne.get(), valueStr); | 3140 FXJSE_Value_ToUTF8String(argOne.get(), valueStr); |
| 3167 valueStr.TrimLeft(); | 3141 valueStr.TrimLeft(); |
| 3168 FXJSE_Value_SetInteger(args.GetReturnValue(), (!valueStr.IsEmpty())); | 3142 FXJSE_Value_SetInteger(args.GetReturnValue(), (!valueStr.IsEmpty())); |
| 3169 } else if (FXJSE_Value_IsNumber(argOne.get()) || | 3143 } else if (FXJSE_Value_IsNumber(argOne.get()) || |
| 3170 FXJSE_Value_IsBoolean(argOne.get())) { | 3144 FXJSE_Value_IsBoolean(argOne.get())) { |
| 3171 FXJSE_Value_SetInteger(args.GetReturnValue(), TRUE); | 3145 FXJSE_Value_SetInteger(args.GetReturnValue(), TRUE); |
| 3172 } else { | 3146 } else { |
| 3173 FXJSE_Value_SetInteger(args.GetReturnValue(), FALSE); | 3147 FXJSE_Value_SetInteger(args.GetReturnValue(), FALSE); |
| 3174 } | 3148 } |
| 3175 } else { | 3149 } else { |
| 3176 CXFA_FM2JSContext* pContext = | 3150 CXFA_FM2JSContext* pContext = |
| 3177 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3151 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3178 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3152 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"HasValue"); |
| 3179 L"HasValue"); | |
| 3180 } | 3153 } |
| 3181 } | 3154 } |
| 3182 | 3155 |
| 3183 // static | 3156 // static |
| 3184 void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis, | 3157 void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis, |
| 3185 const CFX_ByteStringC& szFuncName, | 3158 const CFX_ByteStringC& szFuncName, |
| 3186 CFXJSE_Arguments& args) { | 3159 CFXJSE_Arguments& args) { |
| 3187 if (args.GetLength() > 1) { | 3160 if (args.GetLength() > 1) { |
| 3188 FX_BOOL bFlags = FALSE; | 3161 FX_BOOL bFlags = FALSE; |
| 3189 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3162 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3190 CFXJSE_Value** parametersValue = nullptr; | 3163 CFXJSE_Value** parametersValue = nullptr; |
| 3191 int32_t iCount = 0; | 3164 int32_t iCount = 0; |
| 3192 unfoldArgs(pThis, args, parametersValue, iCount, 1); | 3165 unfoldArgs(pThis, args, parametersValue, iCount, 1); |
| 3193 for (int32_t i = 0; i < iCount; i++) { | 3166 for (int32_t i = 0; i < iCount; i++) { |
| 3194 if (simpleValueCompare(pThis, argOne.get(), parametersValue[i])) { | 3167 if (simpleValueCompare(pThis, argOne.get(), parametersValue[i])) { |
| 3195 bFlags = TRUE; | 3168 bFlags = TRUE; |
| 3196 break; | 3169 break; |
| 3197 } | 3170 } |
| 3198 } | 3171 } |
| 3199 FXJSE_Value_SetInteger(args.GetReturnValue(), bFlags); | 3172 FXJSE_Value_SetInteger(args.GetReturnValue(), bFlags); |
| 3200 for (int32_t i = 0; i < iCount; i++) { | 3173 for (int32_t i = 0; i < iCount; i++) { |
| 3201 delete parametersValue[i]; | 3174 delete parametersValue[i]; |
| 3202 } | 3175 } |
| 3203 FX_Free(parametersValue); | 3176 FX_Free(parametersValue); |
| 3204 } else { | 3177 } else { |
| 3205 CXFA_FM2JSContext* pContext = | 3178 CXFA_FM2JSContext* pContext = |
| 3206 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3179 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3207 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3180 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Oneof"); |
| 3208 L"Oneof"); | |
| 3209 } | 3181 } |
| 3210 } | 3182 } |
| 3211 | 3183 |
| 3212 // static | 3184 // static |
| 3213 void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis, | 3185 void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis, |
| 3214 const CFX_ByteStringC& szFuncName, | 3186 const CFX_ByteStringC& szFuncName, |
| 3215 CFXJSE_Arguments& args) { | 3187 CFXJSE_Arguments& args) { |
| 3216 if (args.GetLength() == 3) { | 3188 if (args.GetLength() == 3) { |
| 3217 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3189 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3218 if (FXJSE_Value_IsNull(argOne.get())) { | 3190 if (FXJSE_Value_IsNull(argOne.get())) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3236 ValueToUTF8String(argHeight.get(), heightString); | 3208 ValueToUTF8String(argHeight.get(), heightString); |
| 3237 FXJSE_Value_SetInteger( | 3209 FXJSE_Value_SetInteger( |
| 3238 args.GetReturnValue(), | 3210 args.GetReturnValue(), |
| 3239 ((oneString.Compare(lowString.AsStringC()) >= 0) && | 3211 ((oneString.Compare(lowString.AsStringC()) >= 0) && |
| 3240 (oneString.Compare(heightString.AsStringC()) <= 0))); | 3212 (oneString.Compare(heightString.AsStringC()) <= 0))); |
| 3241 } | 3213 } |
| 3242 } | 3214 } |
| 3243 } else { | 3215 } else { |
| 3244 CXFA_FM2JSContext* pContext = | 3216 CXFA_FM2JSContext* pContext = |
| 3245 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3217 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3246 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3218 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Within"); |
| 3247 L"Within"); | |
| 3248 } | 3219 } |
| 3249 } | 3220 } |
| 3250 | 3221 |
| 3251 // static | 3222 // static |
| 3252 void CXFA_FM2JSContext::If(CFXJSE_Value* pThis, | 3223 void CXFA_FM2JSContext::If(CFXJSE_Value* pThis, |
| 3253 const CFX_ByteStringC& szFuncName, | 3224 const CFX_ByteStringC& szFuncName, |
| 3254 CFXJSE_Arguments& args) { | 3225 CFXJSE_Arguments& args) { |
| 3255 if (args.GetLength() == 3) { | 3226 if (args.GetLength() == 3) { |
| 3256 std::unique_ptr<CFXJSE_Value> argCondition = GetSimpleValue(pThis, args, 0); | 3227 std::unique_ptr<CFXJSE_Value> argCondition = GetSimpleValue(pThis, args, 0); |
| 3257 std::unique_ptr<CFXJSE_Value> argFirstValue = | 3228 std::unique_ptr<CFXJSE_Value> argFirstValue = |
| 3258 GetSimpleValue(pThis, args, 1); | 3229 GetSimpleValue(pThis, args, 1); |
| 3259 std::unique_ptr<CFXJSE_Value> argSecondValue = | 3230 std::unique_ptr<CFXJSE_Value> argSecondValue = |
| 3260 GetSimpleValue(pThis, args, 2); | 3231 GetSimpleValue(pThis, args, 2); |
| 3261 FX_BOOL bCondition = FXJSE_Value_ToBoolean(argCondition.get()); | 3232 FX_BOOL bCondition = FXJSE_Value_ToBoolean(argCondition.get()); |
| 3262 FXJSE_Value_Set(args.GetReturnValue(), | 3233 FXJSE_Value_Set(args.GetReturnValue(), |
| 3263 bCondition ? argFirstValue.get() : argSecondValue.get()); | 3234 bCondition ? argFirstValue.get() : argSecondValue.get()); |
| 3264 } else { | 3235 } else { |
| 3265 CXFA_FM2JSContext* pContext = | 3236 CXFA_FM2JSContext* pContext = |
| 3266 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3237 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3267 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3238 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"If"); |
| 3268 L"If"); | |
| 3269 } | 3239 } |
| 3270 } | 3240 } |
| 3271 | 3241 |
| 3272 // static | 3242 // static |
| 3273 void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis, | 3243 void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis, |
| 3274 const CFX_ByteStringC& szFuncName, | 3244 const CFX_ByteStringC& szFuncName, |
| 3275 CFXJSE_Arguments& args) { | 3245 CFXJSE_Arguments& args) { |
| 3276 CXFA_FM2JSContext* pContext = | 3246 CXFA_FM2JSContext* pContext = |
| 3277 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3247 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3278 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3248 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3294 std::unique_ptr<CFXJSE_Value> returnValue(new CFXJSE_Value(pIsolate)); | 3264 std::unique_ptr<CFXJSE_Value> returnValue(new CFXJSE_Value(pIsolate)); |
| 3295 javaScript = wsJavaScriptBuf.AsStringC(); | 3265 javaScript = wsJavaScriptBuf.AsStringC(); |
| 3296 FXJSE_ExecuteScript( | 3266 FXJSE_ExecuteScript( |
| 3297 pContext, | 3267 pContext, |
| 3298 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()).c_str(), | 3268 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()).c_str(), |
| 3299 returnValue.get()); | 3269 returnValue.get()); |
| 3300 FXJSE_Value_Set(args.GetReturnValue(), returnValue.get()); | 3270 FXJSE_Value_Set(args.GetReturnValue(), returnValue.get()); |
| 3301 FXJSE_Context_Release(pContext); | 3271 FXJSE_Context_Release(pContext); |
| 3302 } | 3272 } |
| 3303 } else { | 3273 } else { |
| 3304 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3274 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Eval"); |
| 3305 L"Eval"); | |
| 3306 } | 3275 } |
| 3307 } | 3276 } |
| 3308 | 3277 |
| 3309 // static | 3278 // static |
| 3310 void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis, | 3279 void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis, |
| 3311 const CFX_ByteStringC& szFuncName, | 3280 const CFX_ByteStringC& szFuncName, |
| 3312 CFXJSE_Arguments& args) { | 3281 CFXJSE_Arguments& args) { |
| 3313 CXFA_FM2JSContext* pContext = | 3282 CXFA_FM2JSContext* pContext = |
| 3314 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3283 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3315 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3284 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3331 #ifndef NDEBUG | 3300 #ifndef NDEBUG |
| 3332 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 3301 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 3333 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); | 3302 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); |
| 3334 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); | 3303 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); |
| 3335 #endif | 3304 #endif |
| 3336 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 3305 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 3337 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 3306 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 3338 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 1, propertyValue.get()); | 3307 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 1, propertyValue.get()); |
| 3339 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, jsObjectValue.get()); | 3308 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, jsObjectValue.get()); |
| 3340 if (FXJSE_Value_IsNull(jsObjectValue.get())) { | 3309 if (FXJSE_Value_IsNull(jsObjectValue.get())) { |
| 3341 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 3310 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3342 } else if (FXJSE_Value_IsNull(propertyValue.get()) && | 3311 } else if (FXJSE_Value_IsNull(propertyValue.get()) && |
| 3343 (!FXJSE_Value_IsNull(jsObjectValue.get()))) { | 3312 (!FXJSE_Value_IsNull(jsObjectValue.get()))) { |
| 3344 CFXJSE_Value* rgValues[3]; | 3313 CFXJSE_Value* rgValues[3]; |
| 3345 for (int32_t i = 0; i < 3; i++) | 3314 for (int32_t i = 0; i < 3; i++) |
| 3346 rgValues[i] = new CFXJSE_Value(pIsolate); | 3315 rgValues[i] = new CFXJSE_Value(pIsolate); |
| 3347 | 3316 |
| 3348 FXJSE_Value_SetInteger(rgValues[0], 3); | 3317 FXJSE_Value_SetInteger(rgValues[0], 3); |
| 3349 FXJSE_Value_SetNull(rgValues[1]); | 3318 FXJSE_Value_SetNull(rgValues[1]); |
| 3350 FXJSE_Value_Set(rgValues[2], jsObjectValue.get()); | 3319 FXJSE_Value_Set(rgValues[2], jsObjectValue.get()); |
| 3351 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); | 3320 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); |
| 3352 for (int32_t i = 0; i < 3; i++) | 3321 for (int32_t i = 0; i < 3; i++) |
| 3353 delete rgValues[i]; | 3322 delete rgValues[i]; |
| 3354 | 3323 |
| 3355 } else { | 3324 } else { |
| 3356 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 3325 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3357 } | 3326 } |
| 3358 } else if (FXJSE_Value_IsObject(argOne.get())) { | 3327 } else if (FXJSE_Value_IsObject(argOne.get())) { |
| 3359 CFXJSE_Value* rgValues[3]; | 3328 CFXJSE_Value* rgValues[3]; |
| 3360 for (int32_t i = 0; i < 3; i++) | 3329 for (int32_t i = 0; i < 3; i++) |
| 3361 rgValues[i] = new CFXJSE_Value(pIsolate); | 3330 rgValues[i] = new CFXJSE_Value(pIsolate); |
| 3362 | 3331 |
| 3363 FXJSE_Value_SetInteger(rgValues[0], 3); | 3332 FXJSE_Value_SetInteger(rgValues[0], 3); |
| 3364 FXJSE_Value_SetNull(rgValues[1]); | 3333 FXJSE_Value_SetNull(rgValues[1]); |
| 3365 FXJSE_Value_Set(rgValues[2], argOne.get()); | 3334 FXJSE_Value_Set(rgValues[2], argOne.get()); |
| 3366 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); | 3335 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); |
| 3367 | 3336 |
| 3368 for (int32_t i = 0; i < 3; i++) | 3337 for (int32_t i = 0; i < 3; i++) |
| 3369 delete rgValues[i]; | 3338 delete rgValues[i]; |
| 3370 } else if (FXJSE_Value_IsBoolean(argOne.get()) || | 3339 } else if (FXJSE_Value_IsBoolean(argOne.get()) || |
| 3371 FXJSE_Value_IsUTF8String(argOne.get()) || | 3340 FXJSE_Value_IsUTF8String(argOne.get()) || |
| 3372 FXJSE_Value_IsNumber(argOne.get())) { | 3341 FXJSE_Value_IsNumber(argOne.get())) { |
| 3373 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); | 3342 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); |
| 3374 } else { | 3343 } else { |
| 3375 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 3344 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3376 } | 3345 } |
| 3377 } else { | 3346 } else { |
| 3378 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3347 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Ref"); |
| 3379 L"Ref"); | |
| 3380 } | 3348 } |
| 3381 } | 3349 } |
| 3382 | 3350 |
| 3383 // static | 3351 // static |
| 3384 void CXFA_FM2JSContext::UnitType(CFXJSE_Value* pThis, | 3352 void CXFA_FM2JSContext::UnitType(CFXJSE_Value* pThis, |
| 3385 const CFX_ByteStringC& szFuncName, | 3353 const CFX_ByteStringC& szFuncName, |
| 3386 CFXJSE_Arguments& args) { | 3354 CFXJSE_Arguments& args) { |
| 3387 if (args.GetLength() == 1) { | 3355 if (args.GetLength() == 1) { |
| 3388 std::unique_ptr<CFXJSE_Value> unitspanValue = | 3356 std::unique_ptr<CFXJSE_Value> unitspanValue = |
| 3389 GetSimpleValue(pThis, args, 0); | 3357 GetSimpleValue(pThis, args, 0); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3486 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "mp"); | 3454 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "mp"); |
| 3487 break; | 3455 break; |
| 3488 default: | 3456 default: |
| 3489 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "in"); | 3457 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "in"); |
| 3490 break; | 3458 break; |
| 3491 } | 3459 } |
| 3492 } | 3460 } |
| 3493 } else { | 3461 } else { |
| 3494 CXFA_FM2JSContext* pContext = | 3462 CXFA_FM2JSContext* pContext = |
| 3495 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3463 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3496 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3464 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"UnitType"); |
| 3497 L"UnitType"); | |
| 3498 } | 3465 } |
| 3499 } | 3466 } |
| 3500 | 3467 |
| 3501 // static | 3468 // static |
| 3502 void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis, | 3469 void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis, |
| 3503 const CFX_ByteStringC& szFuncName, | 3470 const CFX_ByteStringC& szFuncName, |
| 3504 CFXJSE_Arguments& args) { | 3471 CFXJSE_Arguments& args) { |
| 3505 int32_t argc = args.GetLength(); | 3472 int32_t argc = args.GetLength(); |
| 3506 if ((argc == 1) || (argc == 2)) { | 3473 if ((argc == 1) || (argc == 2)) { |
| 3507 std::unique_ptr<CFXJSE_Value> unitspanValue = | 3474 std::unique_ptr<CFXJSE_Value> unitspanValue = |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3644 } | 3611 } |
| 3645 } | 3612 } |
| 3646 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); | 3613 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); |
| 3647 } else { | 3614 } else { |
| 3648 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 3615 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| 3649 } | 3616 } |
| 3650 } | 3617 } |
| 3651 } else { | 3618 } else { |
| 3652 CXFA_FM2JSContext* pContext = | 3619 CXFA_FM2JSContext* pContext = |
| 3653 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3620 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3654 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3621 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"UnitValue"); |
| 3655 L"UnitValue"); | |
| 3656 } | 3622 } |
| 3657 } | 3623 } |
| 3658 | 3624 |
| 3659 // static | 3625 // static |
| 3660 void CXFA_FM2JSContext::At(CFXJSE_Value* pThis, | 3626 void CXFA_FM2JSContext::At(CFXJSE_Value* pThis, |
| 3661 const CFX_ByteStringC& szFuncName, | 3627 const CFX_ByteStringC& szFuncName, |
| 3662 CFXJSE_Arguments& args) { | 3628 CFXJSE_Arguments& args) { |
| 3663 if (args.GetLength() == 2) { | 3629 if (args.GetLength() == 2) { |
| 3664 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3630 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3665 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 3631 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3666 if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) { | 3632 if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) { |
| 3667 FXJSE_Value_SetNull(args.GetReturnValue()); | 3633 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3668 } else { | 3634 } else { |
| 3669 CFX_ByteString stringTwo; | 3635 CFX_ByteString stringTwo; |
| 3670 ValueToUTF8String(argTwo.get(), stringTwo); | 3636 ValueToUTF8String(argTwo.get(), stringTwo); |
| 3671 if (stringTwo.IsEmpty()) { | 3637 if (stringTwo.IsEmpty()) { |
| 3672 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); | 3638 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); |
| 3673 } else { | 3639 } else { |
| 3674 CFX_ByteString stringOne; | 3640 CFX_ByteString stringOne; |
| 3675 ValueToUTF8String(argOne.get(), stringOne); | 3641 ValueToUTF8String(argOne.get(), stringOne); |
| 3676 FX_STRSIZE iPosition = stringOne.Find(stringTwo.AsStringC()); | 3642 FX_STRSIZE iPosition = stringOne.Find(stringTwo.AsStringC()); |
| 3677 FXJSE_Value_SetInteger(args.GetReturnValue(), iPosition + 1); | 3643 FXJSE_Value_SetInteger(args.GetReturnValue(), iPosition + 1); |
| 3678 } | 3644 } |
| 3679 } | 3645 } |
| 3680 } else { | 3646 } else { |
| 3681 CXFA_FM2JSContext* pContext = | 3647 CXFA_FM2JSContext* pContext = |
| 3682 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3648 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3683 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3649 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"At"); |
| 3684 L"At"); | |
| 3685 } | 3650 } |
| 3686 } | 3651 } |
| 3687 | 3652 |
| 3688 // static | 3653 // static |
| 3689 void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis, | 3654 void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis, |
| 3690 const CFX_ByteStringC& szFuncName, | 3655 const CFX_ByteStringC& szFuncName, |
| 3691 CFXJSE_Arguments& args) { | 3656 CFXJSE_Arguments& args) { |
| 3692 int32_t argc = args.GetLength(); | 3657 int32_t argc = args.GetLength(); |
| 3693 if (argc >= 1) { | 3658 if (argc >= 1) { |
| 3694 CFX_ByteString resultString; | 3659 CFX_ByteString resultString; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3706 | 3671 |
| 3707 if (bAllNull) { | 3672 if (bAllNull) { |
| 3708 FXJSE_Value_SetNull(args.GetReturnValue()); | 3673 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3709 } else { | 3674 } else { |
| 3710 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 3675 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 3711 resultString.AsStringC()); | 3676 resultString.AsStringC()); |
| 3712 } | 3677 } |
| 3713 } else { | 3678 } else { |
| 3714 CXFA_FM2JSContext* pContext = | 3679 CXFA_FM2JSContext* pContext = |
| 3715 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3680 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3716 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3681 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Concat"); |
| 3717 L"Concat"); | |
| 3718 } | 3682 } |
| 3719 } | 3683 } |
| 3720 | 3684 |
| 3721 // static | 3685 // static |
| 3722 void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis, | 3686 void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis, |
| 3723 const CFX_ByteStringC& szFuncName, | 3687 const CFX_ByteStringC& szFuncName, |
| 3724 CFXJSE_Arguments& args) { | 3688 CFXJSE_Arguments& args) { |
| 3725 int32_t argc = args.GetLength(); | 3689 int32_t argc = args.GetLength(); |
| 3726 if (argc == 1) { | 3690 if (argc == 1) { |
| 3727 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3691 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 3750 } else if (identifyString.EqualNoCase("xml")) { | 3714 } else if (identifyString.EqualNoCase("xml")) { |
| 3751 DecodeXML(toDecodeString.AsStringC(), resultBuf); | 3715 DecodeXML(toDecodeString.AsStringC(), resultBuf); |
| 3752 } else { | 3716 } else { |
| 3753 DecodeURL(toDecodeString.AsStringC(), resultBuf); | 3717 DecodeURL(toDecodeString.AsStringC(), resultBuf); |
| 3754 } | 3718 } |
| 3755 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 3719 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 3756 } | 3720 } |
| 3757 } else { | 3721 } else { |
| 3758 CXFA_FM2JSContext* pContext = | 3722 CXFA_FM2JSContext* pContext = |
| 3759 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3723 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 3760 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3724 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Decode"); |
| 3761 L"Decode"); | |
| 3762 } | 3725 } |
| 3763 } | 3726 } |
| 3764 | 3727 |
| 3765 // static | 3728 // static |
| 3766 void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString, | 3729 void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString, |
| 3767 CFX_ByteTextBuf& szResultString) { | 3730 CFX_ByteTextBuf& szResultString) { |
| 3768 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); | 3731 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); |
| 3769 const FX_WCHAR* pData = wsURLString.c_str(); | 3732 const FX_WCHAR* pData = wsURLString.c_str(); |
| 3770 int32_t iLen = wsURLString.GetLength(); | 3733 int32_t iLen = wsURLString.GetLength(); |
| 3771 int32_t i = 0; | 3734 int32_t i = 0; |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4026 } else if (identifyString.EqualNoCase("xml")) { | 3989 } else if (identifyString.EqualNoCase("xml")) { |
| 4027 EncodeXML(toEncodeString.AsStringC(), resultBuf); | 3990 EncodeXML(toEncodeString.AsStringC(), resultBuf); |
| 4028 } else { | 3991 } else { |
| 4029 EncodeURL(toEncodeString.AsStringC(), resultBuf); | 3992 EncodeURL(toEncodeString.AsStringC(), resultBuf); |
| 4030 } | 3993 } |
| 4031 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 3994 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 4032 } | 3995 } |
| 4033 } else { | 3996 } else { |
| 4034 CXFA_FM2JSContext* pContext = | 3997 CXFA_FM2JSContext* pContext = |
| 4035 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3998 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4036 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3999 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Encode"); |
| 4037 L"Encode"); | |
| 4038 } | 4000 } |
| 4039 } | 4001 } |
| 4040 | 4002 |
| 4041 // static | 4003 // static |
| 4042 void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString, | 4004 void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString, |
| 4043 CFX_ByteTextBuf& szResultBuf) { | 4005 CFX_ByteTextBuf& szResultBuf) { |
| 4044 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); | 4006 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); |
| 4045 CFX_WideTextBuf wsResultBuf; | 4007 CFX_WideTextBuf wsResultBuf; |
| 4046 FX_WCHAR ch = 0; | 4008 FX_WCHAR ch = 0; |
| 4047 int32_t iLength = wsURLString.GetLength(); | 4009 int32_t iLength = wsURLString.GetLength(); |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4403 CFX_WideString wsRet; | 4365 CFX_WideString wsRet; |
| 4404 if (localeValue.FormatPatterns(wsRet, wsPattern, pLocale, | 4366 if (localeValue.FormatPatterns(wsRet, wsPattern, pLocale, |
| 4405 XFA_VALUEPICTURE_Display)) { | 4367 XFA_VALUEPICTURE_Display)) { |
| 4406 FXJSE_Value_SetUTF8String( | 4368 FXJSE_Value_SetUTF8String( |
| 4407 args.GetReturnValue(), | 4369 args.GetReturnValue(), |
| 4408 FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()).AsStringC()); | 4370 FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()).AsStringC()); |
| 4409 } else { | 4371 } else { |
| 4410 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); | 4372 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); |
| 4411 } | 4373 } |
| 4412 } else { | 4374 } else { |
| 4413 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4375 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Format"); |
| 4414 L"Format"); | |
| 4415 } | 4376 } |
| 4416 } | 4377 } |
| 4417 | 4378 |
| 4418 // static | 4379 // static |
| 4419 void CXFA_FM2JSContext::Left(CFXJSE_Value* pThis, | 4380 void CXFA_FM2JSContext::Left(CFXJSE_Value* pThis, |
| 4420 const CFX_ByteStringC& szFuncName, | 4381 const CFX_ByteStringC& szFuncName, |
| 4421 CFXJSE_Arguments& args) { | 4382 CFXJSE_Arguments& args) { |
| 4422 if (args.GetLength() == 2) { | 4383 if (args.GetLength() == 2) { |
| 4423 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4384 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4424 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 4385 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4435 int32_t count = ValueToInteger(pThis, argTwo.get()); | 4396 int32_t count = ValueToInteger(pThis, argTwo.get()); |
| 4436 if (count < 0) { | 4397 if (count < 0) { |
| 4437 count = 0; | 4398 count = 0; |
| 4438 } | 4399 } |
| 4439 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4400 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4440 sourceString.Left(count).AsStringC()); | 4401 sourceString.Left(count).AsStringC()); |
| 4441 } | 4402 } |
| 4442 } else { | 4403 } else { |
| 4443 CXFA_FM2JSContext* pContext = | 4404 CXFA_FM2JSContext* pContext = |
| 4444 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4405 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4445 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4406 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Left"); |
| 4446 L"Left"); | |
| 4447 } | 4407 } |
| 4448 } | 4408 } |
| 4449 | 4409 |
| 4450 // static | 4410 // static |
| 4451 void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis, | 4411 void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis, |
| 4452 const CFX_ByteStringC& szFuncName, | 4412 const CFX_ByteStringC& szFuncName, |
| 4453 CFXJSE_Arguments& args) { | 4413 CFXJSE_Arguments& args) { |
| 4454 if (args.GetLength() == 1) { | 4414 if (args.GetLength() == 1) { |
| 4455 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4415 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4456 if (ValueIsNull(pThis, argOne.get())) { | 4416 if (ValueIsNull(pThis, argOne.get())) { |
| 4457 FXJSE_Value_SetNull(args.GetReturnValue()); | 4417 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4458 } else { | 4418 } else { |
| 4459 CFX_ByteString sourceString; | 4419 CFX_ByteString sourceString; |
| 4460 ValueToUTF8String(argOne.get(), sourceString); | 4420 ValueToUTF8String(argOne.get(), sourceString); |
| 4461 FXJSE_Value_SetInteger(args.GetReturnValue(), sourceString.GetLength()); | 4421 FXJSE_Value_SetInteger(args.GetReturnValue(), sourceString.GetLength()); |
| 4462 } | 4422 } |
| 4463 } else { | 4423 } else { |
| 4464 CXFA_FM2JSContext* pContext = | 4424 CXFA_FM2JSContext* pContext = |
| 4465 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4425 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4466 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4426 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Len"); |
| 4467 L"Len"); | |
| 4468 } | 4427 } |
| 4469 } | 4428 } |
| 4470 | 4429 |
| 4471 // static | 4430 // static |
| 4472 void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis, | 4431 void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis, |
| 4473 const CFX_ByteStringC& szFuncName, | 4432 const CFX_ByteStringC& szFuncName, |
| 4474 CFXJSE_Arguments& args) { | 4433 CFXJSE_Arguments& args) { |
| 4475 int32_t argc = args.GetLength(); | 4434 int32_t argc = args.GetLength(); |
| 4476 if ((argc > 0) && (argc < 3)) { | 4435 if ((argc > 0) && (argc < 3)) { |
| 4477 CFX_ByteString argString; | 4436 CFX_ByteString argString; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4501 } | 4460 } |
| 4502 lowStringBuf.AppendChar(0); | 4461 lowStringBuf.AppendChar(0); |
| 4503 FXJSE_Value_SetUTF8String( | 4462 FXJSE_Value_SetUTF8String( |
| 4504 args.GetReturnValue(), | 4463 args.GetReturnValue(), |
| 4505 FX_UTF8Encode(lowStringBuf.GetBuffer(), lowStringBuf.GetLength()) | 4464 FX_UTF8Encode(lowStringBuf.GetBuffer(), lowStringBuf.GetLength()) |
| 4506 .AsStringC()); | 4465 .AsStringC()); |
| 4507 } | 4466 } |
| 4508 } else { | 4467 } else { |
| 4509 CXFA_FM2JSContext* pContext = | 4468 CXFA_FM2JSContext* pContext = |
| 4510 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4469 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4511 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4470 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Lower"); |
| 4512 L"Lower"); | |
| 4513 } | 4471 } |
| 4514 } | 4472 } |
| 4515 | 4473 |
| 4516 // static | 4474 // static |
| 4517 void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis, | 4475 void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis, |
| 4518 const CFX_ByteStringC& szFuncName, | 4476 const CFX_ByteStringC& szFuncName, |
| 4519 CFXJSE_Arguments& args) { | 4477 CFXJSE_Arguments& args) { |
| 4520 if (args.GetLength() == 1) { | 4478 if (args.GetLength() == 1) { |
| 4521 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4479 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4522 if (ValueIsNull(pThis, argOne.get())) { | 4480 if (ValueIsNull(pThis, argOne.get())) { |
| 4523 FXJSE_Value_SetNull(args.GetReturnValue()); | 4481 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4524 } else { | 4482 } else { |
| 4525 CFX_ByteString sourceString; | 4483 CFX_ByteString sourceString; |
| 4526 ValueToUTF8String(argOne.get(), sourceString); | 4484 ValueToUTF8String(argOne.get(), sourceString); |
| 4527 sourceString.TrimLeft(); | 4485 sourceString.TrimLeft(); |
| 4528 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4486 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4529 sourceString.AsStringC()); | 4487 sourceString.AsStringC()); |
| 4530 } | 4488 } |
| 4531 } else { | 4489 } else { |
| 4532 CXFA_FM2JSContext* pContext = | 4490 CXFA_FM2JSContext* pContext = |
| 4533 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4491 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4534 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4492 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Ltrim"); |
| 4535 L"Ltrim"); | |
| 4536 } | 4493 } |
| 4537 } | 4494 } |
| 4538 | 4495 |
| 4539 // static | 4496 // static |
| 4540 void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis, | 4497 void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis, |
| 4541 const CFX_ByteStringC& szFuncName, | 4498 const CFX_ByteStringC& szFuncName, |
| 4542 CFXJSE_Arguments& args) { | 4499 CFXJSE_Arguments& args) { |
| 4543 CXFA_FM2JSContext* pContext = | 4500 CXFA_FM2JSContext* pContext = |
| 4544 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4501 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4545 if (args.GetLength() == 2) { | 4502 if (args.GetLength() == 2) { |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4665 szParsedValue.AsStringC()); | 4622 szParsedValue.AsStringC()); |
| 4666 } else { | 4623 } else { |
| 4667 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); | 4624 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); |
| 4668 } | 4625 } |
| 4669 } | 4626 } |
| 4670 } break; | 4627 } break; |
| 4671 } | 4628 } |
| 4672 } | 4629 } |
| 4673 } | 4630 } |
| 4674 } else { | 4631 } else { |
| 4675 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4632 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Parse"); |
| 4676 L"Parse"); | |
| 4677 } | 4633 } |
| 4678 } | 4634 } |
| 4679 | 4635 |
| 4680 // static | 4636 // static |
| 4681 void CXFA_FM2JSContext::Replace(CFXJSE_Value* pThis, | 4637 void CXFA_FM2JSContext::Replace(CFXJSE_Value* pThis, |
| 4682 const CFX_ByteStringC& szFuncName, | 4638 const CFX_ByteStringC& szFuncName, |
| 4683 CFXJSE_Arguments& args) { | 4639 CFXJSE_Arguments& args) { |
| 4684 int32_t argc = args.GetLength(); | 4640 int32_t argc = args.GetLength(); |
| 4685 if ((argc == 2) || (argc == 3)) { | 4641 if ((argc == 2) || (argc == 3)) { |
| 4686 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4642 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4727 } | 4683 } |
| 4728 } else { | 4684 } else { |
| 4729 resultString.AppendChar(ch); | 4685 resultString.AppendChar(ch); |
| 4730 } | 4686 } |
| 4731 } | 4687 } |
| 4732 resultString.AppendChar(0); | 4688 resultString.AppendChar(0); |
| 4733 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); | 4689 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); |
| 4734 } else { | 4690 } else { |
| 4735 CXFA_FM2JSContext* pContext = | 4691 CXFA_FM2JSContext* pContext = |
| 4736 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4692 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4737 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4693 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Replace"); |
| 4738 L"Replace"); | |
| 4739 } | 4694 } |
| 4740 } | 4695 } |
| 4741 | 4696 |
| 4742 // static | 4697 // static |
| 4743 void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis, | 4698 void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis, |
| 4744 const CFX_ByteStringC& szFuncName, | 4699 const CFX_ByteStringC& szFuncName, |
| 4745 CFXJSE_Arguments& args) { | 4700 CFXJSE_Arguments& args) { |
| 4746 if (args.GetLength() == 2) { | 4701 if (args.GetLength() == 2) { |
| 4747 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4702 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4748 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 4703 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4759 int32_t count = ValueToInteger(pThis, argTwo.get()); | 4714 int32_t count = ValueToInteger(pThis, argTwo.get()); |
| 4760 if (count < 0) { | 4715 if (count < 0) { |
| 4761 count = 0; | 4716 count = 0; |
| 4762 } | 4717 } |
| 4763 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4718 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4764 sourceString.Right(count).AsStringC()); | 4719 sourceString.Right(count).AsStringC()); |
| 4765 } | 4720 } |
| 4766 } else { | 4721 } else { |
| 4767 CXFA_FM2JSContext* pContext = | 4722 CXFA_FM2JSContext* pContext = |
| 4768 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4723 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4769 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4724 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Right"); |
| 4770 L"Right"); | |
| 4771 } | 4725 } |
| 4772 } | 4726 } |
| 4773 | 4727 |
| 4774 // static | 4728 // static |
| 4775 void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis, | 4729 void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis, |
| 4776 const CFX_ByteStringC& szFuncName, | 4730 const CFX_ByteStringC& szFuncName, |
| 4777 CFXJSE_Arguments& args) { | 4731 CFXJSE_Arguments& args) { |
| 4778 if (args.GetLength() == 1) { | 4732 if (args.GetLength() == 1) { |
| 4779 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4733 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4780 if (ValueIsNull(pThis, argOne.get())) { | 4734 if (ValueIsNull(pThis, argOne.get())) { |
| 4781 FXJSE_Value_SetNull(args.GetReturnValue()); | 4735 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4782 } else { | 4736 } else { |
| 4783 CFX_ByteString sourceString; | 4737 CFX_ByteString sourceString; |
| 4784 ValueToUTF8String(argOne.get(), sourceString); | 4738 ValueToUTF8String(argOne.get(), sourceString); |
| 4785 sourceString.TrimRight(); | 4739 sourceString.TrimRight(); |
| 4786 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4740 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4787 sourceString.AsStringC()); | 4741 sourceString.AsStringC()); |
| 4788 } | 4742 } |
| 4789 } else { | 4743 } else { |
| 4790 CXFA_FM2JSContext* pContext = | 4744 CXFA_FM2JSContext* pContext = |
| 4791 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4745 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4792 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4746 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Rtrim"); |
| 4793 L"Rtrim"); | |
| 4794 } | 4747 } |
| 4795 } | 4748 } |
| 4796 | 4749 |
| 4797 // static | 4750 // static |
| 4798 void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis, | 4751 void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis, |
| 4799 const CFX_ByteStringC& szFuncName, | 4752 const CFX_ByteStringC& szFuncName, |
| 4800 CFXJSE_Arguments& args) { | 4753 CFXJSE_Arguments& args) { |
| 4801 if (args.GetLength() == 1) { | 4754 if (args.GetLength() == 1) { |
| 4802 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4755 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4803 if (FXJSE_Value_IsNull(argOne.get())) { | 4756 if (FXJSE_Value_IsNull(argOne.get())) { |
| 4804 FXJSE_Value_SetNull(args.GetReturnValue()); | 4757 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4805 } else { | 4758 } else { |
| 4806 int32_t count = 0; | 4759 int32_t count = 0; |
| 4807 count = ValueToInteger(pThis, argOne.get()); | 4760 count = ValueToInteger(pThis, argOne.get()); |
| 4808 count = (count < 0) ? 0 : count; | 4761 count = (count < 0) ? 0 : count; |
| 4809 CFX_ByteTextBuf spaceString; | 4762 CFX_ByteTextBuf spaceString; |
| 4810 int32_t index = 0; | 4763 int32_t index = 0; |
| 4811 while (index < count) { | 4764 while (index < count) { |
| 4812 spaceString.AppendByte(' '); | 4765 spaceString.AppendByte(' '); |
| 4813 index++; | 4766 index++; |
| 4814 } | 4767 } |
| 4815 spaceString.AppendByte(0); | 4768 spaceString.AppendByte(0); |
| 4816 FXJSE_Value_SetUTF8String(args.GetReturnValue(), spaceString.AsStringC()); | 4769 FXJSE_Value_SetUTF8String(args.GetReturnValue(), spaceString.AsStringC()); |
| 4817 } | 4770 } |
| 4818 } else { | 4771 } else { |
| 4819 CXFA_FM2JSContext* pContext = | 4772 CXFA_FM2JSContext* pContext = |
| 4820 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4773 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4821 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4774 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Space"); |
| 4822 L"Space"); | |
| 4823 } | 4775 } |
| 4824 } | 4776 } |
| 4825 | 4777 |
| 4826 // static | 4778 // static |
| 4827 void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis, | 4779 void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis, |
| 4828 const CFX_ByteStringC& szFuncName, | 4780 const CFX_ByteStringC& szFuncName, |
| 4829 CFXJSE_Arguments& args) { | 4781 CFXJSE_Arguments& args) { |
| 4830 int32_t argc = args.GetLength(); | 4782 int32_t argc = args.GetLength(); |
| 4831 if ((argc > 0) && (argc < 4)) { | 4783 if ((argc > 0) && (argc < 4)) { |
| 4832 FX_BOOL bFlags = FALSE; | 4784 FX_BOOL bFlags = FALSE; |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4931 resultBuf.AppendChar(0); | 4883 resultBuf.AppendChar(0); |
| 4932 } | 4884 } |
| 4933 } | 4885 } |
| 4934 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 4886 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 4935 } else { | 4887 } else { |
| 4936 FXJSE_Value_SetNull(args.GetReturnValue()); | 4888 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4937 } | 4889 } |
| 4938 } else { | 4890 } else { |
| 4939 CXFA_FM2JSContext* pContext = | 4891 CXFA_FM2JSContext* pContext = |
| 4940 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4892 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 4941 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4893 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Str"); |
| 4942 L"Str"); | |
| 4943 } | 4894 } |
| 4944 } | 4895 } |
| 4945 | 4896 |
| 4946 // static | 4897 // static |
| 4947 void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis, | 4898 void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis, |
| 4948 const CFX_ByteStringC& szFuncName, | 4899 const CFX_ByteStringC& szFuncName, |
| 4949 CFXJSE_Arguments& args) { | 4900 CFXJSE_Arguments& args) { |
| 4950 int32_t argc = args.GetLength(); | 4901 int32_t argc = args.GetLength(); |
| 4951 if ((argc == 3) || (argc == 4)) { | 4902 if ((argc == 3) || (argc == 4)) { |
| 4952 CFX_ByteString sourceString; | 4903 CFX_ByteString sourceString; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4990 i = iStart + iDelete; | 4941 i = iStart + iDelete; |
| 4991 while (i < iLength) { | 4942 while (i < iLength) { |
| 4992 resultString.AppendChar(sourceString.GetAt(i)); | 4943 resultString.AppendChar(sourceString.GetAt(i)); |
| 4993 ++i; | 4944 ++i; |
| 4994 } | 4945 } |
| 4995 resultString.AppendChar(0); | 4946 resultString.AppendChar(0); |
| 4996 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); | 4947 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); |
| 4997 } else { | 4948 } else { |
| 4998 CXFA_FM2JSContext* pContext = | 4949 CXFA_FM2JSContext* pContext = |
| 4999 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4950 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5000 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4951 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Stuff"); |
| 5001 L"Stuff"); | |
| 5002 } | 4952 } |
| 5003 } | 4953 } |
| 5004 | 4954 |
| 5005 // static | 4955 // static |
| 5006 void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis, | 4956 void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis, |
| 5007 const CFX_ByteStringC& szFuncName, | 4957 const CFX_ByteStringC& szFuncName, |
| 5008 CFXJSE_Arguments& args) { | 4958 CFXJSE_Arguments& args) { |
| 5009 if (args.GetLength() == 3) { | 4959 if (args.GetLength() == 3) { |
| 5010 std::unique_ptr<CFXJSE_Value> stringValue = GetSimpleValue(pThis, args, 0); | 4960 std::unique_ptr<CFXJSE_Value> stringValue = GetSimpleValue(pThis, args, 0); |
| 5011 std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, args, 1); | 4961 std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, args, 1); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 5035 iCount = 0; | 4985 iCount = 0; |
| 5036 } | 4986 } |
| 5037 iStart -= 1; | 4987 iStart -= 1; |
| 5038 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4988 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 5039 szSourceStr.Mid(iStart, iCount).AsStringC()); | 4989 szSourceStr.Mid(iStart, iCount).AsStringC()); |
| 5040 } | 4990 } |
| 5041 } | 4991 } |
| 5042 } else { | 4992 } else { |
| 5043 CXFA_FM2JSContext* pContext = | 4993 CXFA_FM2JSContext* pContext = |
| 5044 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4994 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5045 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 4995 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Substr"); |
| 5046 L"Substr"); | |
| 5047 } | 4996 } |
| 5048 } | 4997 } |
| 5049 | 4998 |
| 5050 // static | 4999 // static |
| 5051 void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis, | 5000 void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis, |
| 5052 const CFX_ByteStringC& szFuncName, | 5001 const CFX_ByteStringC& szFuncName, |
| 5053 CFXJSE_Arguments& args) { | 5002 CFXJSE_Arguments& args) { |
| 5054 int32_t argc = args.GetLength(); | 5003 int32_t argc = args.GetLength(); |
| 5055 if ((argc == 0) || (argc == 1)) { | 5004 if ((argc == 0) || (argc == 1)) { |
| 5056 int32_t iNum = 0; | 5005 int32_t iNum = 0; |
| 5057 if (argc == 1) { | 5006 if (argc == 1) { |
| 5058 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5007 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 5059 iNum = (int32_t)ValueToFloat(pThis, argOne.get()); | 5008 iNum = (int32_t)ValueToFloat(pThis, argOne.get()); |
| 5060 } | 5009 } |
| 5061 FX_GUID guid; | 5010 FX_GUID guid; |
| 5062 FX_GUID_CreateV4(&guid); | 5011 FX_GUID_CreateV4(&guid); |
| 5063 CFX_ByteString bsUId; | 5012 CFX_ByteString bsUId; |
| 5064 FX_GUID_ToString(&guid, bsUId, iNum); | 5013 FX_GUID_ToString(&guid, bsUId, iNum); |
| 5065 FXJSE_Value_SetUTF8String(args.GetReturnValue(), bsUId.AsStringC()); | 5014 FXJSE_Value_SetUTF8String(args.GetReturnValue(), bsUId.AsStringC()); |
| 5066 } else { | 5015 } else { |
| 5067 CXFA_FM2JSContext* pContext = | 5016 CXFA_FM2JSContext* pContext = |
| 5068 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5017 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5069 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5018 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Uuid"); |
| 5070 L"Uuid"); | |
| 5071 } | 5019 } |
| 5072 } | 5020 } |
| 5073 | 5021 |
| 5074 // static | 5022 // static |
| 5075 void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis, | 5023 void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis, |
| 5076 const CFX_ByteStringC& szFuncName, | 5024 const CFX_ByteStringC& szFuncName, |
| 5077 CFXJSE_Arguments& args) { | 5025 CFXJSE_Arguments& args) { |
| 5078 int32_t argc = args.GetLength(); | 5026 int32_t argc = args.GetLength(); |
| 5079 if ((argc > 0) && (argc < 3)) { | 5027 if ((argc > 0) && (argc < 3)) { |
| 5080 CFX_ByteString argString; | 5028 CFX_ByteString argString; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 5104 } | 5052 } |
| 5105 upperStringBuf.AppendChar(0); | 5053 upperStringBuf.AppendChar(0); |
| 5106 FXJSE_Value_SetUTF8String( | 5054 FXJSE_Value_SetUTF8String( |
| 5107 args.GetReturnValue(), | 5055 args.GetReturnValue(), |
| 5108 FX_UTF8Encode(upperStringBuf.GetBuffer(), upperStringBuf.GetLength()) | 5056 FX_UTF8Encode(upperStringBuf.GetBuffer(), upperStringBuf.GetLength()) |
| 5109 .AsStringC()); | 5057 .AsStringC()); |
| 5110 } | 5058 } |
| 5111 } else { | 5059 } else { |
| 5112 CXFA_FM2JSContext* pContext = | 5060 CXFA_FM2JSContext* pContext = |
| 5113 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5061 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5114 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5062 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Upper"); |
| 5115 L"Upper"); | |
| 5116 } | 5063 } |
| 5117 } | 5064 } |
| 5118 | 5065 |
| 5119 // static | 5066 // static |
| 5120 void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis, | 5067 void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis, |
| 5121 const CFX_ByteStringC& szFuncName, | 5068 const CFX_ByteStringC& szFuncName, |
| 5122 CFXJSE_Arguments& args) { | 5069 CFXJSE_Arguments& args) { |
| 5123 int32_t argc = args.GetLength(); | 5070 int32_t argc = args.GetLength(); |
| 5124 if ((argc > 0) && (argc < 4)) { | 5071 if ((argc > 0) && (argc < 4)) { |
| 5125 FX_BOOL bFlags = FALSE; | 5072 FX_BOOL bFlags = FALSE; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5159 numberString.Format("%.2f", fNumber); | 5106 numberString.Format("%.2f", fNumber); |
| 5160 WordUS(numberString.AsStringC(), iIdentifier, resultBuf); | 5107 WordUS(numberString.AsStringC(), iIdentifier, resultBuf); |
| 5161 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 5108 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 5162 } | 5109 } |
| 5163 } else { | 5110 } else { |
| 5164 FXJSE_Value_SetNull(args.GetReturnValue()); | 5111 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5165 } | 5112 } |
| 5166 } else { | 5113 } else { |
| 5167 CXFA_FM2JSContext* pContext = | 5114 CXFA_FM2JSContext* pContext = |
| 5168 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5115 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5169 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5116 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"WordNum"); |
| 5170 L"WordNum"); | |
| 5171 } | 5117 } |
| 5172 } | 5118 } |
| 5173 | 5119 |
| 5174 // static | 5120 // static |
| 5175 void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData, | 5121 void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData, |
| 5176 CFX_ByteTextBuf& strBuf) { | 5122 CFX_ByteTextBuf& strBuf) { |
| 5177 CFX_ByteStringC pUnits[] = {"zero", "one", "two", "three", "four", | 5123 CFX_ByteStringC pUnits[] = {"zero", "one", "two", "three", "four", |
| 5178 "five", "six", "seven", "eight", "nine"}; | 5124 "five", "six", "seven", "eight", "nine"}; |
| 5179 CFX_ByteStringC pCapUnits[] = {"Zero", "One", "Two", "Three", "Four", | 5125 CFX_ByteStringC pCapUnits[] = {"Zero", "One", "Two", "Three", "Four", |
| 5180 "Five", "Six", "Seven", "Eight", "Nine"}; | 5126 "Five", "Six", "Seven", "Eight", "Nine"}; |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5394 if (pFile) { | 5340 if (pFile) { |
| 5395 int32_t size = pFile->GetSize(); | 5341 int32_t size = pFile->GetSize(); |
| 5396 uint8_t* pData = FX_Alloc(uint8_t, size); | 5342 uint8_t* pData = FX_Alloc(uint8_t, size); |
| 5397 pFile->ReadBlock(pData, size); | 5343 pFile->ReadBlock(pData, size); |
| 5398 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 5344 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 5399 CFX_ByteStringC(pData, size)); | 5345 CFX_ByteStringC(pData, size)); |
| 5400 FX_Free(pData); | 5346 FX_Free(pData); |
| 5401 pFile->Release(); | 5347 pFile->Release(); |
| 5402 } | 5348 } |
| 5403 } else { | 5349 } else { |
| 5404 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5350 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Get"); |
| 5405 L"Get"); | |
| 5406 } | 5351 } |
| 5407 } | 5352 } |
| 5408 | 5353 |
| 5409 // static | 5354 // static |
| 5410 void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis, | 5355 void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis, |
| 5411 const CFX_ByteStringC& szFuncName, | 5356 const CFX_ByteStringC& szFuncName, |
| 5412 CFXJSE_Arguments& args) { | 5357 CFXJSE_Arguments& args) { |
| 5413 CXFA_FM2JSContext* pContext = | 5358 CXFA_FM2JSContext* pContext = |
| 5414 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5359 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5415 int32_t argc = args.GetLength(); | 5360 int32_t argc = args.GetLength(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5450 CFX_WideString::FromUTF8(bsData.AsStringC()), | 5395 CFX_WideString::FromUTF8(bsData.AsStringC()), |
| 5451 CFX_WideString::FromUTF8(bsContentType.AsStringC()), | 5396 CFX_WideString::FromUTF8(bsContentType.AsStringC()), |
| 5452 CFX_WideString::FromUTF8(bsEncode.AsStringC()), | 5397 CFX_WideString::FromUTF8(bsEncode.AsStringC()), |
| 5453 CFX_WideString::FromUTF8(bsHeader.AsStringC()), decodedResponse); | 5398 CFX_WideString::FromUTF8(bsHeader.AsStringC()), decodedResponse); |
| 5454 if (bFlags) { | 5399 if (bFlags) { |
| 5455 FXJSE_Value_SetUTF8String( | 5400 FXJSE_Value_SetUTF8String( |
| 5456 args.GetReturnValue(), | 5401 args.GetReturnValue(), |
| 5457 FX_UTF8Encode(decodedResponse.c_str(), decodedResponse.GetLength()) | 5402 FX_UTF8Encode(decodedResponse.c_str(), decodedResponse.GetLength()) |
| 5458 .AsStringC()); | 5403 .AsStringC()); |
| 5459 } else { | 5404 } else { |
| 5460 pContext->ThrowScriptErrorMessage(XFA_IDS_SERVER_DENY); | 5405 pContext->ThrowException(XFA_IDS_SERVER_DENY); |
| 5461 } | 5406 } |
| 5462 } else { | 5407 } else { |
| 5463 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5408 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Post"); |
| 5464 L"Post"); | |
| 5465 } | 5409 } |
| 5466 } | 5410 } |
| 5467 | 5411 |
| 5468 // static | 5412 // static |
| 5469 void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis, | 5413 void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis, |
| 5470 const CFX_ByteStringC& szFuncName, | 5414 const CFX_ByteStringC& szFuncName, |
| 5471 CFXJSE_Arguments& args) { | 5415 CFXJSE_Arguments& args) { |
| 5472 CXFA_FM2JSContext* pContext = | 5416 CXFA_FM2JSContext* pContext = |
| 5473 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5417 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5474 int32_t argc = args.GetLength(); | 5418 int32_t argc = args.GetLength(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5493 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 5437 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 5494 ValueToUTF8String(argThree.get(), bsEncode); | 5438 ValueToUTF8String(argThree.get(), bsEncode); |
| 5495 } | 5439 } |
| 5496 FX_BOOL bFlags = pAppProvider->PutRequestURL( | 5440 FX_BOOL bFlags = pAppProvider->PutRequestURL( |
| 5497 CFX_WideString::FromUTF8(bsURL.AsStringC()), | 5441 CFX_WideString::FromUTF8(bsURL.AsStringC()), |
| 5498 CFX_WideString::FromUTF8(bsData.AsStringC()), | 5442 CFX_WideString::FromUTF8(bsData.AsStringC()), |
| 5499 CFX_WideString::FromUTF8(bsEncode.AsStringC())); | 5443 CFX_WideString::FromUTF8(bsEncode.AsStringC())); |
| 5500 if (bFlags) { | 5444 if (bFlags) { |
| 5501 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); | 5445 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); |
| 5502 } else { | 5446 } else { |
| 5503 pContext->ThrowScriptErrorMessage(XFA_IDS_SERVER_DENY); | 5447 pContext->ThrowException(XFA_IDS_SERVER_DENY); |
| 5504 } | 5448 } |
| 5505 } else { | 5449 } else { |
| 5506 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5450 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Put"); |
| 5507 L"Put"); | |
| 5508 } | 5451 } |
| 5509 } | 5452 } |
| 5510 | 5453 |
| 5511 // static | 5454 // static |
| 5512 void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis, | 5455 void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis, |
| 5513 const CFX_ByteStringC& szFuncName, | 5456 const CFX_ByteStringC& szFuncName, |
| 5514 CFXJSE_Arguments& args) { | 5457 CFXJSE_Arguments& args) { |
| 5515 CXFA_FM2JSContext* pContext = | 5458 CXFA_FM2JSContext* pContext = |
| 5516 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5459 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5517 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 5460 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 5518 if (args.GetLength() == 2) { | 5461 if (args.GetLength() == 2) { |
| 5519 std::unique_ptr<CFXJSE_Value> lValue = args.GetValue(0); | 5462 std::unique_ptr<CFXJSE_Value> lValue = args.GetValue(0); |
| 5520 std::unique_ptr<CFXJSE_Value> rValue = GetSimpleValue(pThis, args, 1); | 5463 std::unique_ptr<CFXJSE_Value> rValue = GetSimpleValue(pThis, args, 1); |
| 5521 FX_BOOL bSetStatus = TRUE; | 5464 FX_BOOL bSetStatus = TRUE; |
| 5522 if (FXJSE_Value_IsArray(lValue.get())) { | 5465 if (FXJSE_Value_IsArray(lValue.get())) { |
| 5523 std::unique_ptr<CFXJSE_Value> leftLengthValue(new CFXJSE_Value(pIsolate)); | 5466 std::unique_ptr<CFXJSE_Value> leftLengthValue(new CFXJSE_Value(pIsolate)); |
| 5524 FXJSE_Value_GetObjectProp(lValue.get(), "length", leftLengthValue.get()); | 5467 FXJSE_Value_GetObjectProp(lValue.get(), "length", leftLengthValue.get()); |
| 5525 int32_t iLeftLength = FXJSE_Value_ToInteger(leftLengthValue.get()); | 5468 int32_t iLeftLength = FXJSE_Value_ToInteger(leftLengthValue.get()); |
| 5526 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 5469 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 5527 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 5470 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 5528 FXJSE_Value_GetObjectPropByIdx(lValue.get(), 1, propertyValue.get()); | 5471 FXJSE_Value_GetObjectPropByIdx(lValue.get(), 1, propertyValue.get()); |
| 5529 if (FXJSE_Value_IsNull(propertyValue.get())) { | 5472 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 5530 for (int32_t i = 2; i < iLeftLength; i++) { | 5473 for (int32_t i = 2; i < iLeftLength; i++) { |
| 5531 FXJSE_Value_GetObjectPropByIdx(lValue.get(), i, jsObjectValue.get()); | 5474 FXJSE_Value_GetObjectPropByIdx(lValue.get(), i, jsObjectValue.get()); |
| 5532 bSetStatus = SetObjectDefaultValue(jsObjectValue.get(), rValue.get()); | 5475 bSetStatus = SetObjectDefaultValue(jsObjectValue.get(), rValue.get()); |
| 5533 if (!bSetStatus) { | 5476 if (!bSetStatus) { |
| 5534 pContext->ThrowScriptErrorMessage(XFA_IDS_NOT_DEFAUL_VALUE); | 5477 pContext->ThrowException(XFA_IDS_NOT_DEFAUL_VALUE); |
| 5535 break; | 5478 break; |
| 5536 } | 5479 } |
| 5537 } | 5480 } |
| 5538 } else { | 5481 } else { |
| 5539 CFX_ByteString propertyStr; | 5482 CFX_ByteString propertyStr; |
| 5540 FXJSE_Value_ToUTF8String(propertyValue.get(), propertyStr); | 5483 FXJSE_Value_ToUTF8String(propertyValue.get(), propertyStr); |
| 5541 for (int32_t i = 2; i < iLeftLength; i++) { | 5484 for (int32_t i = 2; i < iLeftLength; i++) { |
| 5542 FXJSE_Value_GetObjectPropByIdx(lValue.get(), i, jsObjectValue.get()); | 5485 FXJSE_Value_GetObjectPropByIdx(lValue.get(), i, jsObjectValue.get()); |
| 5543 FXJSE_Value_SetObjectProp(jsObjectValue.get(), | 5486 FXJSE_Value_SetObjectProp(jsObjectValue.get(), |
| 5544 propertyStr.AsStringC(), rValue.get()); | 5487 propertyStr.AsStringC(), rValue.get()); |
| 5545 } | 5488 } |
| 5546 } | 5489 } |
| 5547 } else if (FXJSE_Value_IsObject(lValue.get())) { | 5490 } else if (FXJSE_Value_IsObject(lValue.get())) { |
| 5548 bSetStatus = SetObjectDefaultValue(lValue.get(), rValue.get()); | 5491 bSetStatus = SetObjectDefaultValue(lValue.get(), rValue.get()); |
| 5549 if (!bSetStatus) { | 5492 if (!bSetStatus) { |
| 5550 pContext->ThrowScriptErrorMessage(XFA_IDS_NOT_DEFAUL_VALUE); | 5493 pContext->ThrowException(XFA_IDS_NOT_DEFAUL_VALUE); |
| 5551 } | 5494 } |
| 5552 } | 5495 } |
| 5553 FXJSE_Value_Set(args.GetReturnValue(), rValue.get()); | 5496 FXJSE_Value_Set(args.GetReturnValue(), rValue.get()); |
| 5554 } else { | 5497 } else { |
| 5555 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5498 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5556 } | 5499 } |
| 5557 } | 5500 } |
| 5558 | 5501 |
| 5559 // static | 5502 // static |
| 5560 void CXFA_FM2JSContext::logical_or_operator(CFXJSE_Value* pThis, | 5503 void CXFA_FM2JSContext::logical_or_operator(CFXJSE_Value* pThis, |
| 5561 const CFX_ByteStringC& szFuncName, | 5504 const CFX_ByteStringC& szFuncName, |
| 5562 CFXJSE_Arguments& args) { | 5505 CFXJSE_Arguments& args) { |
| 5563 if (args.GetLength() == 2) { | 5506 if (args.GetLength() == 2) { |
| 5564 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5507 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5565 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5508 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5566 if (FXJSE_Value_IsNull(argFirst.get()) && | 5509 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5567 FXJSE_Value_IsNull(argSecond.get())) { | 5510 FXJSE_Value_IsNull(argSecond.get())) { |
| 5568 FXJSE_Value_SetNull(args.GetReturnValue()); | 5511 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5569 } else { | 5512 } else { |
| 5570 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); | 5513 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); |
| 5571 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); | 5514 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); |
| 5572 FXJSE_Value_SetInteger(args.GetReturnValue(), (first || second) ? 1 : 0); | 5515 FXJSE_Value_SetInteger(args.GetReturnValue(), (first || second) ? 1 : 0); |
| 5573 } | 5516 } |
| 5574 } else { | 5517 } else { |
| 5575 CXFA_FM2JSContext* pContext = | 5518 CXFA_FM2JSContext* pContext = |
| 5576 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5519 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5577 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5520 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5578 } | 5521 } |
| 5579 } | 5522 } |
| 5580 | 5523 |
| 5581 // static | 5524 // static |
| 5582 void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis, | 5525 void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis, |
| 5583 const CFX_ByteStringC& szFuncName, | 5526 const CFX_ByteStringC& szFuncName, |
| 5584 CFXJSE_Arguments& args) { | 5527 CFXJSE_Arguments& args) { |
| 5585 if (args.GetLength() == 2) { | 5528 if (args.GetLength() == 2) { |
| 5586 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5529 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5587 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5530 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5588 if (FXJSE_Value_IsNull(argFirst.get()) && | 5531 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5589 FXJSE_Value_IsNull(argSecond.get())) { | 5532 FXJSE_Value_IsNull(argSecond.get())) { |
| 5590 FXJSE_Value_SetNull(args.GetReturnValue()); | 5533 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5591 } else { | 5534 } else { |
| 5592 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); | 5535 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); |
| 5593 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); | 5536 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); |
| 5594 FXJSE_Value_SetInteger(args.GetReturnValue(), (first && second) ? 1 : 0); | 5537 FXJSE_Value_SetInteger(args.GetReturnValue(), (first && second) ? 1 : 0); |
| 5595 } | 5538 } |
| 5596 } else { | 5539 } else { |
| 5597 CXFA_FM2JSContext* pContext = | 5540 CXFA_FM2JSContext* pContext = |
| 5598 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5541 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5599 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5542 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5600 } | 5543 } |
| 5601 } | 5544 } |
| 5602 | 5545 |
| 5603 // static | 5546 // static |
| 5604 void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis, | 5547 void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis, |
| 5605 const CFX_ByteStringC& szFuncName, | 5548 const CFX_ByteStringC& szFuncName, |
| 5606 CFXJSE_Arguments& args) { | 5549 CFXJSE_Arguments& args) { |
| 5607 if (args.GetLength() == 2) { | 5550 if (args.GetLength() == 2) { |
| 5608 if (fm_ref_equal(pThis, args)) { | 5551 if (fm_ref_equal(pThis, args)) { |
| 5609 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); | 5552 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5628 } else { | 5571 } else { |
| 5629 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5572 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5630 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5573 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5631 FXJSE_Value_SetInteger(args.GetReturnValue(), | 5574 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 5632 (first == second) ? 1 : 0); | 5575 (first == second) ? 1 : 0); |
| 5633 } | 5576 } |
| 5634 } | 5577 } |
| 5635 } else { | 5578 } else { |
| 5636 CXFA_FM2JSContext* pContext = | 5579 CXFA_FM2JSContext* pContext = |
| 5637 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5580 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5638 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5581 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5639 } | 5582 } |
| 5640 } | 5583 } |
| 5641 | 5584 |
| 5642 // static | 5585 // static |
| 5643 void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis, | 5586 void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis, |
| 5644 const CFX_ByteStringC& szFuncName, | 5587 const CFX_ByteStringC& szFuncName, |
| 5645 CFXJSE_Arguments& args) { | 5588 CFXJSE_Arguments& args) { |
| 5646 if (args.GetLength() == 2) { | 5589 if (args.GetLength() == 2) { |
| 5647 if (fm_ref_equal(pThis, args)) { | 5590 if (fm_ref_equal(pThis, args)) { |
| 5648 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 5591 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5666 firstOutput != secondOutput); | 5609 firstOutput != secondOutput); |
| 5667 } else { | 5610 } else { |
| 5668 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5611 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5669 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5612 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5670 FXJSE_Value_SetInteger(args.GetReturnValue(), first != second); | 5613 FXJSE_Value_SetInteger(args.GetReturnValue(), first != second); |
| 5671 } | 5614 } |
| 5672 } | 5615 } |
| 5673 } else { | 5616 } else { |
| 5674 CXFA_FM2JSContext* pContext = | 5617 CXFA_FM2JSContext* pContext = |
| 5675 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5618 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5676 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5619 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5677 } | 5620 } |
| 5678 } | 5621 } |
| 5679 | 5622 |
| 5680 // static | 5623 // static |
| 5681 FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis, | 5624 FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis, |
| 5682 CFXJSE_Arguments& args) { | 5625 CFXJSE_Arguments& args) { |
| 5683 FX_BOOL bRet = FALSE; | 5626 FX_BOOL bRet = FALSE; |
| 5684 CXFA_FM2JSContext* pContext = | 5627 CXFA_FM2JSContext* pContext = |
| 5685 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5628 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5686 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 5629 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5728 args.GetReturnValue(), | 5671 args.GetReturnValue(), |
| 5729 firstOutput.Compare(secondOutput.AsStringC()) == -1); | 5672 firstOutput.Compare(secondOutput.AsStringC()) == -1); |
| 5730 } else { | 5673 } else { |
| 5731 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5674 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5732 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5675 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5733 FXJSE_Value_SetInteger(args.GetReturnValue(), (first < second) ? 1 : 0); | 5676 FXJSE_Value_SetInteger(args.GetReturnValue(), (first < second) ? 1 : 0); |
| 5734 } | 5677 } |
| 5735 } else { | 5678 } else { |
| 5736 CXFA_FM2JSContext* pContext = | 5679 CXFA_FM2JSContext* pContext = |
| 5737 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5680 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5738 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5681 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5739 } | 5682 } |
| 5740 } | 5683 } |
| 5741 | 5684 |
| 5742 // static | 5685 // static |
| 5743 void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis, | 5686 void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis, |
| 5744 const CFX_ByteStringC& szFuncName, | 5687 const CFX_ByteStringC& szFuncName, |
| 5745 CFXJSE_Arguments& args) { | 5688 CFXJSE_Arguments& args) { |
| 5746 if (args.GetLength() == 2) { | 5689 if (args.GetLength() == 2) { |
| 5747 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5690 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5748 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5691 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 5763 args.GetReturnValue(), | 5706 args.GetReturnValue(), |
| 5764 firstOutput.Compare(secondOutput.AsStringC()) != 1); | 5707 firstOutput.Compare(secondOutput.AsStringC()) != 1); |
| 5765 } else { | 5708 } else { |
| 5766 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5709 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5767 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5710 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5768 FXJSE_Value_SetInteger(args.GetReturnValue(), (first <= second) ? 1 : 0); | 5711 FXJSE_Value_SetInteger(args.GetReturnValue(), (first <= second) ? 1 : 0); |
| 5769 } | 5712 } |
| 5770 } else { | 5713 } else { |
| 5771 CXFA_FM2JSContext* pContext = | 5714 CXFA_FM2JSContext* pContext = |
| 5772 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5715 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5773 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5716 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5774 } | 5717 } |
| 5775 } | 5718 } |
| 5776 | 5719 |
| 5777 // static | 5720 // static |
| 5778 void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis, | 5721 void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis, |
| 5779 const CFX_ByteStringC& szFuncName, | 5722 const CFX_ByteStringC& szFuncName, |
| 5780 CFXJSE_Arguments& args) { | 5723 CFXJSE_Arguments& args) { |
| 5781 if (args.GetLength() == 2) { | 5724 if (args.GetLength() == 2) { |
| 5782 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5725 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5783 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5726 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 5794 args.GetReturnValue(), | 5737 args.GetReturnValue(), |
| 5795 firstOutput.Compare(secondOutput.AsStringC()) == 1); | 5738 firstOutput.Compare(secondOutput.AsStringC()) == 1); |
| 5796 } else { | 5739 } else { |
| 5797 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5740 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5798 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5741 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5799 FXJSE_Value_SetInteger(args.GetReturnValue(), (first > second) ? 1 : 0); | 5742 FXJSE_Value_SetInteger(args.GetReturnValue(), (first > second) ? 1 : 0); |
| 5800 } | 5743 } |
| 5801 } else { | 5744 } else { |
| 5802 CXFA_FM2JSContext* pContext = | 5745 CXFA_FM2JSContext* pContext = |
| 5803 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5746 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5804 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5747 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5805 } | 5748 } |
| 5806 } | 5749 } |
| 5807 | 5750 |
| 5808 // static | 5751 // static |
| 5809 void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis, | 5752 void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis, |
| 5810 const CFX_ByteStringC& szFuncName, | 5753 const CFX_ByteStringC& szFuncName, |
| 5811 CFXJSE_Arguments& args) { | 5754 CFXJSE_Arguments& args) { |
| 5812 if (args.GetLength() == 2) { | 5755 if (args.GetLength() == 2) { |
| 5813 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5756 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5814 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5757 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 5829 args.GetReturnValue(), | 5772 args.GetReturnValue(), |
| 5830 firstOutput.Compare(secondOutput.AsStringC()) != -1); | 5773 firstOutput.Compare(secondOutput.AsStringC()) != -1); |
| 5831 } else { | 5774 } else { |
| 5832 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5775 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5833 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5776 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5834 FXJSE_Value_SetInteger(args.GetReturnValue(), (first >= second) ? 1 : 0); | 5777 FXJSE_Value_SetInteger(args.GetReturnValue(), (first >= second) ? 1 : 0); |
| 5835 } | 5778 } |
| 5836 } else { | 5779 } else { |
| 5837 CXFA_FM2JSContext* pContext = | 5780 CXFA_FM2JSContext* pContext = |
| 5838 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5781 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5839 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5782 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5840 } | 5783 } |
| 5841 } | 5784 } |
| 5842 | 5785 |
| 5843 // static | 5786 // static |
| 5844 void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis, | 5787 void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis, |
| 5845 const CFX_ByteStringC& szFuncName, | 5788 const CFX_ByteStringC& szFuncName, |
| 5846 CFXJSE_Arguments& args) { | 5789 CFXJSE_Arguments& args) { |
| 5847 if (args.GetLength() == 2) { | 5790 if (args.GetLength() == 2) { |
| 5848 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); | 5791 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); |
| 5849 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); | 5792 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); |
| 5850 if (ValueIsNull(pThis, argFirst.get()) && | 5793 if (ValueIsNull(pThis, argFirst.get()) && |
| 5851 ValueIsNull(pThis, argSecond.get())) { | 5794 ValueIsNull(pThis, argSecond.get())) { |
| 5852 FXJSE_Value_SetNull(args.GetReturnValue()); | 5795 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5853 } else { | 5796 } else { |
| 5854 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5797 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5855 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5798 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5856 FXJSE_Value_SetDouble(args.GetReturnValue(), first + second); | 5799 FXJSE_Value_SetDouble(args.GetReturnValue(), first + second); |
| 5857 } | 5800 } |
| 5858 } else { | 5801 } else { |
| 5859 CXFA_FM2JSContext* pContext = | 5802 CXFA_FM2JSContext* pContext = |
| 5860 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5803 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5861 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5804 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5862 } | 5805 } |
| 5863 } | 5806 } |
| 5864 | 5807 |
| 5865 // static | 5808 // static |
| 5866 void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis, | 5809 void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis, |
| 5867 const CFX_ByteStringC& szFuncName, | 5810 const CFX_ByteStringC& szFuncName, |
| 5868 CFXJSE_Arguments& args) { | 5811 CFXJSE_Arguments& args) { |
| 5869 if (args.GetLength() == 2) { | 5812 if (args.GetLength() == 2) { |
| 5870 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5813 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5871 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5814 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5872 if (FXJSE_Value_IsNull(argFirst.get()) && | 5815 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5873 FXJSE_Value_IsNull(argSecond.get())) { | 5816 FXJSE_Value_IsNull(argSecond.get())) { |
| 5874 FXJSE_Value_SetNull(args.GetReturnValue()); | 5817 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5875 } else { | 5818 } else { |
| 5876 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5819 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5877 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5820 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5878 FXJSE_Value_SetDouble(args.GetReturnValue(), first - second); | 5821 FXJSE_Value_SetDouble(args.GetReturnValue(), first - second); |
| 5879 } | 5822 } |
| 5880 } else { | 5823 } else { |
| 5881 CXFA_FM2JSContext* pContext = | 5824 CXFA_FM2JSContext* pContext = |
| 5882 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5825 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5883 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5826 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5884 } | 5827 } |
| 5885 } | 5828 } |
| 5886 | 5829 |
| 5887 // static | 5830 // static |
| 5888 void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis, | 5831 void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis, |
| 5889 const CFX_ByteStringC& szFuncName, | 5832 const CFX_ByteStringC& szFuncName, |
| 5890 CFXJSE_Arguments& args) { | 5833 CFXJSE_Arguments& args) { |
| 5891 if (args.GetLength() == 2) { | 5834 if (args.GetLength() == 2) { |
| 5892 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5835 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5893 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5836 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5894 if (FXJSE_Value_IsNull(argFirst.get()) && | 5837 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5895 FXJSE_Value_IsNull(argSecond.get())) { | 5838 FXJSE_Value_IsNull(argSecond.get())) { |
| 5896 FXJSE_Value_SetNull(args.GetReturnValue()); | 5839 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5897 } else { | 5840 } else { |
| 5898 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5841 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5899 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5842 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5900 FXJSE_Value_SetDouble(args.GetReturnValue(), first * second); | 5843 FXJSE_Value_SetDouble(args.GetReturnValue(), first * second); |
| 5901 } | 5844 } |
| 5902 } else { | 5845 } else { |
| 5903 CXFA_FM2JSContext* pContext = | 5846 CXFA_FM2JSContext* pContext = |
| 5904 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5847 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5905 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5848 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5906 } | 5849 } |
| 5907 } | 5850 } |
| 5908 | 5851 |
| 5909 // static | 5852 // static |
| 5910 void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis, | 5853 void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis, |
| 5911 const CFX_ByteStringC& szFuncName, | 5854 const CFX_ByteStringC& szFuncName, |
| 5912 CFXJSE_Arguments& args) { | 5855 CFXJSE_Arguments& args) { |
| 5913 CXFA_FM2JSContext* pContext = | 5856 CXFA_FM2JSContext* pContext = |
| 5914 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5857 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5915 if (args.GetLength() == 2) { | 5858 if (args.GetLength() == 2) { |
| 5916 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5859 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5917 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5860 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5918 if (FXJSE_Value_IsNull(argFirst.get()) && | 5861 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5919 FXJSE_Value_IsNull(argSecond.get())) { | 5862 FXJSE_Value_IsNull(argSecond.get())) { |
| 5920 FXJSE_Value_SetNull(args.GetReturnValue()); | 5863 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5921 } else { | 5864 } else { |
| 5922 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5865 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5923 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5866 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5924 if (second == 0.0) { | 5867 if (second == 0.0) { |
| 5925 pContext->ThrowScriptErrorMessage(XFA_IDS_DIVIDE_ZERO); | 5868 pContext->ThrowException(XFA_IDS_DIVIDE_ZERO); |
| 5926 } else { | 5869 } else { |
| 5927 FXJSE_Value_SetDouble(args.GetReturnValue(), first / second); | 5870 FXJSE_Value_SetDouble(args.GetReturnValue(), first / second); |
| 5928 } | 5871 } |
| 5929 } | 5872 } |
| 5930 } else { | 5873 } else { |
| 5931 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5874 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5932 } | 5875 } |
| 5933 } | 5876 } |
| 5934 | 5877 |
| 5935 // static | 5878 // static |
| 5936 void CXFA_FM2JSContext::positive_operator(CFXJSE_Value* pThis, | 5879 void CXFA_FM2JSContext::positive_operator(CFXJSE_Value* pThis, |
| 5937 const CFX_ByteStringC& szFuncName, | 5880 const CFX_ByteStringC& szFuncName, |
| 5938 CFXJSE_Arguments& args) { | 5881 CFXJSE_Arguments& args) { |
| 5939 if (args.GetLength() == 1) { | 5882 if (args.GetLength() == 1) { |
| 5940 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5883 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 5941 if (FXJSE_Value_IsNull(argOne.get())) { | 5884 if (FXJSE_Value_IsNull(argOne.get())) { |
| 5942 FXJSE_Value_SetNull(args.GetReturnValue()); | 5885 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5943 } else { | 5886 } else { |
| 5944 FXJSE_Value_SetDouble(args.GetReturnValue(), | 5887 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 5945 0.0 + ValueToDouble(pThis, argOne.get())); | 5888 0.0 + ValueToDouble(pThis, argOne.get())); |
| 5946 } | 5889 } |
| 5947 } else { | 5890 } else { |
| 5948 CXFA_FM2JSContext* pContext = | 5891 CXFA_FM2JSContext* pContext = |
| 5949 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5892 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5950 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5893 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5951 } | 5894 } |
| 5952 } | 5895 } |
| 5953 | 5896 |
| 5954 // static | 5897 // static |
| 5955 void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis, | 5898 void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis, |
| 5956 const CFX_ByteStringC& szFuncName, | 5899 const CFX_ByteStringC& szFuncName, |
| 5957 CFXJSE_Arguments& args) { | 5900 CFXJSE_Arguments& args) { |
| 5958 if (args.GetLength() == 1) { | 5901 if (args.GetLength() == 1) { |
| 5959 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5902 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 5960 if (FXJSE_Value_IsNull(argOne.get())) { | 5903 if (FXJSE_Value_IsNull(argOne.get())) { |
| 5961 FXJSE_Value_SetNull(args.GetReturnValue()); | 5904 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5962 } else { | 5905 } else { |
| 5963 FXJSE_Value_SetDouble(args.GetReturnValue(), | 5906 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 5964 0.0 - ValueToDouble(pThis, argOne.get())); | 5907 0.0 - ValueToDouble(pThis, argOne.get())); |
| 5965 } | 5908 } |
| 5966 } else { | 5909 } else { |
| 5967 CXFA_FM2JSContext* pContext = | 5910 CXFA_FM2JSContext* pContext = |
| 5968 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5911 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5969 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5912 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5970 } | 5913 } |
| 5971 } | 5914 } |
| 5972 | 5915 |
| 5973 // static | 5916 // static |
| 5974 void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis, | 5917 void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis, |
| 5975 const CFX_ByteStringC& szFuncName, | 5918 const CFX_ByteStringC& szFuncName, |
| 5976 CFXJSE_Arguments& args) { | 5919 CFXJSE_Arguments& args) { |
| 5977 if (args.GetLength() == 1) { | 5920 if (args.GetLength() == 1) { |
| 5978 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5921 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 5979 if (FXJSE_Value_IsNull(argOne.get())) { | 5922 if (FXJSE_Value_IsNull(argOne.get())) { |
| 5980 FXJSE_Value_SetNull(args.GetReturnValue()); | 5923 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5981 } else { | 5924 } else { |
| 5982 FX_DOUBLE first = ValueToDouble(pThis, argOne.get()); | 5925 FX_DOUBLE first = ValueToDouble(pThis, argOne.get()); |
| 5983 FXJSE_Value_SetInteger(args.GetReturnValue(), (first == 0.0) ? 1 : 0); | 5926 FXJSE_Value_SetInteger(args.GetReturnValue(), (first == 0.0) ? 1 : 0); |
| 5984 } | 5927 } |
| 5985 } else { | 5928 } else { |
| 5986 CXFA_FM2JSContext* pContext = | 5929 CXFA_FM2JSContext* pContext = |
| 5987 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5930 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5988 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 5931 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 5989 } | 5932 } |
| 5990 } | 5933 } |
| 5991 | 5934 |
| 5992 // static | 5935 // static |
| 5993 void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis, | 5936 void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis, |
| 5994 const CFX_ByteStringC& szFuncName, | 5937 const CFX_ByteStringC& szFuncName, |
| 5995 CFXJSE_Arguments& args) { | 5938 CFXJSE_Arguments& args) { |
| 5996 CXFA_FM2JSContext* pContext = | 5939 CXFA_FM2JSContext* pContext = |
| 5997 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5940 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 5998 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 5941 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6058 FXJSE_Value_SetArray(args.GetReturnValue(), (iCounter + 2), rgValues); | 6001 FXJSE_Value_SetArray(args.GetReturnValue(), (iCounter + 2), rgValues); |
| 6059 for (int32_t i = 0; i < (iCounter + 2); i++) | 6002 for (int32_t i = 0; i < (iCounter + 2); i++) |
| 6060 delete rgValues[i]; | 6003 delete rgValues[i]; |
| 6061 | 6004 |
| 6062 FX_Free(rgValues); | 6005 FX_Free(rgValues); |
| 6063 } else { | 6006 } else { |
| 6064 CFX_WideString wsPropertyName = | 6007 CFX_WideString wsPropertyName = |
| 6065 CFX_WideString::FromUTF8(szName.AsStringC()); | 6008 CFX_WideString::FromUTF8(szName.AsStringC()); |
| 6066 CFX_WideString wsSomExpression = | 6009 CFX_WideString wsSomExpression = |
| 6067 CFX_WideString::FromUTF8(szSomExp.AsStringC()); | 6010 CFX_WideString::FromUTF8(szSomExp.AsStringC()); |
| 6068 pContext->ThrowScriptErrorMessage(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, | 6011 pContext->ThrowException(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, |
| 6069 wsPropertyName.c_str(), | 6012 wsPropertyName.c_str(), |
| 6070 wsSomExpression.c_str()); | 6013 wsSomExpression.c_str()); |
| 6071 } | 6014 } |
| 6072 for (int32_t i = 0; i < iLength - 2; i++) { | 6015 for (int32_t i = 0; i < iLength - 2; i++) { |
| 6073 for (int32_t j = 0; j < iSizes[i]; j++) | 6016 for (int32_t j = 0; j < iSizes[i]; j++) |
| 6074 delete hResolveValues[i][j]; | 6017 delete hResolveValues[i][j]; |
| 6075 | 6018 |
| 6076 if (iSizes[i] > 0) { | 6019 if (iSizes[i] > 0) { |
| 6077 FX_Free(hResolveValues[i]); | 6020 FX_Free(hResolveValues[i]); |
| 6078 } | 6021 } |
| 6079 } | 6022 } |
| 6080 FX_Free(hResolveValues); | 6023 FX_Free(hResolveValues); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6121 FX_Free(rgValues); | 6064 FX_Free(rgValues); |
| 6122 for (int32_t i = 0; i < iSize; i++) | 6065 for (int32_t i = 0; i < iSize; i++) |
| 6123 delete hResolveValues[i]; | 6066 delete hResolveValues[i]; |
| 6124 | 6067 |
| 6125 FX_Free(hResolveValues); | 6068 FX_Free(hResolveValues); |
| 6126 } else { | 6069 } else { |
| 6127 CFX_WideString wsPropertyName = | 6070 CFX_WideString wsPropertyName = |
| 6128 CFX_WideString::FromUTF8(szName.AsStringC()); | 6071 CFX_WideString::FromUTF8(szName.AsStringC()); |
| 6129 CFX_WideString wsSomExpression = | 6072 CFX_WideString wsSomExpression = |
| 6130 CFX_WideString::FromUTF8(szSomExp.AsStringC()); | 6073 CFX_WideString::FromUTF8(szSomExp.AsStringC()); |
| 6131 pContext->ThrowScriptErrorMessage(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, | 6074 pContext->ThrowException(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, |
| 6132 wsPropertyName.c_str(), | 6075 wsPropertyName.c_str(), |
| 6133 wsSomExpression.c_str()); | 6076 wsSomExpression.c_str()); |
| 6134 } | 6077 } |
| 6135 } | 6078 } |
| 6136 } else { | 6079 } else { |
| 6137 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6080 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6138 } | 6081 } |
| 6139 } | 6082 } |
| 6140 | 6083 |
| 6141 // static | 6084 // static |
| 6142 void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis, | 6085 void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis, |
| 6143 const CFX_ByteStringC& szFuncName, | 6086 const CFX_ByteStringC& szFuncName, |
| 6144 CFXJSE_Arguments& args) { | 6087 CFXJSE_Arguments& args) { |
| 6145 CXFA_FM2JSContext* pContext = | 6088 CXFA_FM2JSContext* pContext = |
| 6146 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6089 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6147 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6090 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6204 FXJSE_Value_SetArray(args.GetReturnValue(), (iCounter + 2), rgValues); | 6147 FXJSE_Value_SetArray(args.GetReturnValue(), (iCounter + 2), rgValues); |
| 6205 for (int32_t i = 0; i < (iCounter + 2); i++) | 6148 for (int32_t i = 0; i < (iCounter + 2); i++) |
| 6206 delete rgValues[i]; | 6149 delete rgValues[i]; |
| 6207 | 6150 |
| 6208 FX_Free(rgValues); | 6151 FX_Free(rgValues); |
| 6209 } else { | 6152 } else { |
| 6210 CFX_WideString wsPropertyName = | 6153 CFX_WideString wsPropertyName = |
| 6211 CFX_WideString::FromUTF8(szName.AsStringC()); | 6154 CFX_WideString::FromUTF8(szName.AsStringC()); |
| 6212 CFX_WideString wsSomExpression = | 6155 CFX_WideString wsSomExpression = |
| 6213 CFX_WideString::FromUTF8(szSomExp.AsStringC()); | 6156 CFX_WideString::FromUTF8(szSomExp.AsStringC()); |
| 6214 pContext->ThrowScriptErrorMessage(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, | 6157 pContext->ThrowException(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, |
| 6215 wsPropertyName.c_str(), | 6158 wsPropertyName.c_str(), |
| 6216 wsSomExpression.c_str()); | 6159 wsSomExpression.c_str()); |
| 6217 } | 6160 } |
| 6218 for (int32_t i = 0; i < iLength - 2; i++) { | 6161 for (int32_t i = 0; i < iLength - 2; i++) { |
| 6219 for (int32_t j = 0; j < iSizes[i]; j++) | 6162 for (int32_t j = 0; j < iSizes[i]; j++) |
| 6220 delete hResolveValues[i][j]; | 6163 delete hResolveValues[i][j]; |
| 6221 | 6164 |
| 6222 FX_Free(hResolveValues[i]); | 6165 FX_Free(hResolveValues[i]); |
| 6223 } | 6166 } |
| 6224 FX_Free(hResolveValues); | 6167 FX_Free(hResolveValues); |
| 6225 FX_Free(iSizes); | 6168 FX_Free(iSizes); |
| 6226 } else { | 6169 } else { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6265 FX_Free(rgValues); | 6208 FX_Free(rgValues); |
| 6266 for (int32_t i = 0; i < iSize; i++) | 6209 for (int32_t i = 0; i < iSize; i++) |
| 6267 delete hResolveValues[i]; | 6210 delete hResolveValues[i]; |
| 6268 | 6211 |
| 6269 FX_Free(hResolveValues); | 6212 FX_Free(hResolveValues); |
| 6270 } else { | 6213 } else { |
| 6271 CFX_WideString wsPropertyName = | 6214 CFX_WideString wsPropertyName = |
| 6272 CFX_WideString::FromUTF8(szName.AsStringC()); | 6215 CFX_WideString::FromUTF8(szName.AsStringC()); |
| 6273 CFX_WideString wsSomExpression = | 6216 CFX_WideString wsSomExpression = |
| 6274 CFX_WideString::FromUTF8(szSomExp.AsStringC()); | 6217 CFX_WideString::FromUTF8(szSomExp.AsStringC()); |
| 6275 pContext->ThrowScriptErrorMessage(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, | 6218 pContext->ThrowException(XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT, |
| 6276 wsPropertyName.c_str(), | 6219 wsPropertyName.c_str(), |
| 6277 wsSomExpression.c_str()); | 6220 wsSomExpression.c_str()); |
| 6278 } | 6221 } |
| 6279 } | 6222 } |
| 6280 } else { | 6223 } else { |
| 6281 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6224 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6282 } | 6225 } |
| 6283 } | 6226 } |
| 6284 | 6227 |
| 6285 // static | 6228 // static |
| 6286 void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis, | 6229 void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis, |
| 6287 const CFX_ByteStringC& szFuncName, | 6230 const CFX_ByteStringC& szFuncName, |
| 6288 CFXJSE_Arguments& args) { | 6231 CFXJSE_Arguments& args) { |
| 6289 CXFA_FM2JSContext* pContext = | 6232 CXFA_FM2JSContext* pContext = |
| 6290 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6233 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6291 if (args.GetLength() == 1) { | 6234 if (args.GetLength() == 1) { |
| 6292 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 6235 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 6293 CFX_ByteString argString; | 6236 CFX_ByteString argString; |
| 6294 ValueToUTF8String(argOne.get(), argString); | 6237 ValueToUTF8String(argOne.get(), argString); |
| 6295 if (argString.IsEmpty()) { | 6238 if (argString.IsEmpty()) { |
| 6296 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 6239 pContext->ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 6297 } else { | 6240 } else { |
| 6298 CFX_WideString scriptString = | 6241 CFX_WideString scriptString = |
| 6299 CFX_WideString::FromUTF8(argString.AsStringC()); | 6242 CFX_WideString::FromUTF8(argString.AsStringC()); |
| 6300 CFX_WideTextBuf wsJavaScriptBuf; | 6243 CFX_WideTextBuf wsJavaScriptBuf; |
| 6301 CFX_WideString wsError; | 6244 CFX_WideString wsError; |
| 6302 CXFA_FM2JSContext::Translate(scriptString.AsStringC(), wsJavaScriptBuf, | 6245 CXFA_FM2JSContext::Translate(scriptString.AsStringC(), wsJavaScriptBuf, |
| 6303 wsError); | 6246 wsError); |
| 6304 if (wsError.IsEmpty()) { | 6247 if (wsError.IsEmpty()) { |
| 6305 CFX_WideString javaScript = wsJavaScriptBuf.MakeString(); | 6248 CFX_WideString javaScript = wsJavaScriptBuf.MakeString(); |
| 6306 FXJSE_Value_SetUTF8String( | 6249 FXJSE_Value_SetUTF8String( |
| 6307 args.GetReturnValue(), | 6250 args.GetReturnValue(), |
| 6308 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()) | 6251 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()) |
| 6309 .AsStringC()); | 6252 .AsStringC()); |
| 6310 } else { | 6253 } else { |
| 6311 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6254 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6312 } | 6255 } |
| 6313 } | 6256 } |
| 6314 } else { | 6257 } else { |
| 6315 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 6258 pContext->ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Eval"); |
| 6316 L"Eval"); | |
| 6317 } | 6259 } |
| 6318 } | 6260 } |
| 6319 | 6261 |
| 6320 // static | 6262 // static |
| 6321 void CXFA_FM2JSContext::is_fm_object(CFXJSE_Value* pThis, | 6263 void CXFA_FM2JSContext::is_fm_object(CFXJSE_Value* pThis, |
| 6322 const CFX_ByteStringC& szFuncName, | 6264 const CFX_ByteStringC& szFuncName, |
| 6323 CFXJSE_Arguments& args) { | 6265 CFXJSE_Arguments& args) { |
| 6324 if (args.GetLength() == 1) { | 6266 if (args.GetLength() == 1) { |
| 6325 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 6267 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 6326 FXJSE_Value_SetBoolean(args.GetReturnValue(), | 6268 FXJSE_Value_SetBoolean(args.GetReturnValue(), |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6364 FXJSE_Value_ToUTF8String(propertyValue.get(), propertyStr); | 6306 FXJSE_Value_ToUTF8String(propertyValue.get(), propertyStr); |
| 6365 FXJSE_Value_GetObjectProp(jsObjectValue.get(), propertyStr.AsStringC(), | 6307 FXJSE_Value_GetObjectProp(jsObjectValue.get(), propertyStr.AsStringC(), |
| 6366 args.GetReturnValue()); | 6308 args.GetReturnValue()); |
| 6367 } | 6309 } |
| 6368 } else if (FXJSE_Value_IsObject(argOne.get())) { | 6310 } else if (FXJSE_Value_IsObject(argOne.get())) { |
| 6369 GetObjectDefaultValue(argOne.get(), args.GetReturnValue()); | 6311 GetObjectDefaultValue(argOne.get(), args.GetReturnValue()); |
| 6370 } else { | 6312 } else { |
| 6371 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); | 6313 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); |
| 6372 } | 6314 } |
| 6373 } else { | 6315 } else { |
| 6374 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6316 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6375 } | 6317 } |
| 6376 } | 6318 } |
| 6377 | 6319 |
| 6378 // static | 6320 // static |
| 6379 void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis, | 6321 void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis, |
| 6380 const CFX_ByteStringC& szFuncName, | 6322 const CFX_ByteStringC& szFuncName, |
| 6381 CFXJSE_Arguments& args) { | 6323 CFXJSE_Arguments& args) { |
| 6382 if (args.GetLength() == 1) { | 6324 if (args.GetLength() == 1) { |
| 6383 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 6325 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 6384 if (FXJSE_Value_IsArray(argOne.get())) { | 6326 if (FXJSE_Value_IsArray(argOne.get())) { |
| 6385 #ifndef NDEBUG | 6327 #ifndef NDEBUG |
| 6386 CXFA_FM2JSContext* pContext = | 6328 CXFA_FM2JSContext* pContext = |
| 6387 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6329 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6388 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6330 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6389 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6331 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6390 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); | 6332 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); |
| 6391 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); | 6333 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); |
| 6392 #endif | 6334 #endif |
| 6393 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, args.GetReturnValue()); | 6335 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, args.GetReturnValue()); |
| 6394 } else { | 6336 } else { |
| 6395 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); | 6337 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); |
| 6396 } | 6338 } |
| 6397 } else { | 6339 } else { |
| 6398 CXFA_FM2JSContext* pContext = | 6340 CXFA_FM2JSContext* pContext = |
| 6399 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6341 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6400 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6342 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6401 } | 6343 } |
| 6402 } | 6344 } |
| 6403 | 6345 |
| 6404 // static | 6346 // static |
| 6405 void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis, | 6347 void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis, |
| 6406 const CFX_ByteStringC& szFuncName, | 6348 const CFX_ByteStringC& szFuncName, |
| 6407 CFXJSE_Arguments& args) { | 6349 CFXJSE_Arguments& args) { |
| 6408 CXFA_FM2JSContext* pContext = | 6350 CXFA_FM2JSContext* pContext = |
| 6409 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6351 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6410 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6352 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 6429 FXJSE_Value_SetNull(rgValues[2]); | 6371 FXJSE_Value_SetNull(rgValues[2]); |
| 6430 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); | 6372 FXJSE_Value_SetArray(args.GetReturnValue(), 3, rgValues); |
| 6431 for (int32_t i = 0; i < 3; i++) | 6373 for (int32_t i = 0; i < 3; i++) |
| 6432 delete rgValues[i]; | 6374 delete rgValues[i]; |
| 6433 } else if (iFlags == 3) { | 6375 } else if (iFlags == 3) { |
| 6434 std::unique_ptr<CFXJSE_Value> objectValue(new CFXJSE_Value(pIsolate)); | 6376 std::unique_ptr<CFXJSE_Value> objectValue(new CFXJSE_Value(pIsolate)); |
| 6435 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, objectValue.get()); | 6377 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, objectValue.get()); |
| 6436 if (!FXJSE_Value_IsNull(objectValue.get())) { | 6378 if (!FXJSE_Value_IsNull(objectValue.get())) { |
| 6437 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); | 6379 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); |
| 6438 } else { | 6380 } else { |
| 6439 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6381 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6440 } | 6382 } |
| 6441 } else { | 6383 } else { |
| 6442 std::unique_ptr<CFXJSE_Value> simpleValue = | 6384 std::unique_ptr<CFXJSE_Value> simpleValue = |
| 6443 GetSimpleValue(pThis, args, 0); | 6385 GetSimpleValue(pThis, args, 0); |
| 6444 FXJSE_Value_Set(args.GetReturnValue(), simpleValue.get()); | 6386 FXJSE_Value_Set(args.GetReturnValue(), simpleValue.get()); |
| 6445 } | 6387 } |
| 6446 } else { | 6388 } else { |
| 6447 std::unique_ptr<CFXJSE_Value> simpleValue = | 6389 std::unique_ptr<CFXJSE_Value> simpleValue = |
| 6448 GetSimpleValue(pThis, args, 0); | 6390 GetSimpleValue(pThis, args, 0); |
| 6449 FXJSE_Value_Set(args.GetReturnValue(), simpleValue.get()); | 6391 FXJSE_Value_Set(args.GetReturnValue(), simpleValue.get()); |
| 6450 } | 6392 } |
| 6451 } else { | 6393 } else { |
| 6452 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6394 pContext->ThrowException(XFA_IDS_COMPILER_ERROR); |
| 6453 } | 6395 } |
| 6454 } | 6396 } |
| 6455 | 6397 |
| 6456 // static | 6398 // static |
| 6457 void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis, | 6399 void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis, |
| 6458 const CFX_ByteStringC& szFuncName, | 6400 const CFX_ByteStringC& szFuncName, |
| 6459 CFXJSE_Arguments& args) { | 6401 CFXJSE_Arguments& args) { |
| 6460 CXFA_FM2JSContext* pContext = | 6402 CXFA_FM2JSContext* pContext = |
| 6461 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6403 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); |
| 6462 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6404 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7078 FXJSE_Value_SetNull(m_pValue.get()); | 7020 FXJSE_Value_SetNull(m_pValue.get()); |
| 7079 FXJSE_Value_SetObject(m_pValue.get(), this, m_pFMClass); | 7021 FXJSE_Value_SetObject(m_pValue.get(), this, m_pFMClass); |
| 7080 } | 7022 } |
| 7081 | 7023 |
| 7082 CXFA_FM2JSContext::~CXFA_FM2JSContext() {} | 7024 CXFA_FM2JSContext::~CXFA_FM2JSContext() {} |
| 7083 | 7025 |
| 7084 void CXFA_FM2JSContext::GlobalPropertyGetter(CFXJSE_Value* pValue) { | 7026 void CXFA_FM2JSContext::GlobalPropertyGetter(CFXJSE_Value* pValue) { |
| 7085 FXJSE_Value_Set(pValue, m_pValue.get()); | 7027 FXJSE_Value_Set(pValue, m_pValue.get()); |
| 7086 } | 7028 } |
| 7087 | 7029 |
| 7088 void CXFA_FM2JSContext::ThrowScriptErrorMessage(int32_t iStringID, ...) { | 7030 void CXFA_FM2JSContext::ThrowException(int32_t iStringID, ...) { |
| 7089 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); | 7031 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); |
| 7090 ASSERT(pAppProvider); | 7032 ASSERT(pAppProvider); |
| 7091 CFX_WideString wsFormat; | 7033 CFX_WideString wsFormat; |
| 7092 pAppProvider->LoadString(iStringID, wsFormat); | 7034 pAppProvider->LoadString(iStringID, wsFormat); |
| 7093 CFX_WideString wsMessage; | 7035 CFX_WideString wsMessage; |
| 7094 va_list arg_ptr; | 7036 va_list arg_ptr; |
| 7095 va_start(arg_ptr, iStringID); | 7037 va_start(arg_ptr, iStringID); |
| 7096 wsMessage.FormatV(wsFormat.c_str(), arg_ptr); | 7038 wsMessage.FormatV(wsFormat.c_str(), arg_ptr); |
| 7097 va_end(arg_ptr); | 7039 va_end(arg_ptr); |
| 7098 FXJSE_ThrowMessage( | 7040 FXJSE_ThrowMessage( |
| 7099 "", FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); | 7041 "", FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); |
| 7100 } | 7042 } |
| OLD | NEW |