Chromium Code Reviews| 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 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 494 return false; | 494 return false; |
| 495 } | 495 } |
| 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 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 505 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 505 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Abs"); |
| 506 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 507 L"Abs"); | |
| 508 return; | 506 return; |
| 509 } | 507 } |
| 510 | 508 |
| 511 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 509 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 512 if (ValueIsNull(pThis, argOne.get())) { | 510 if (ValueIsNull(pThis, argOne.get())) { |
| 513 FXJSE_Value_SetNull(args.GetReturnValue()); | 511 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 514 return; | 512 return; |
| 515 } | 513 } |
| 516 | 514 |
| 517 FX_DOUBLE dValue = ValueToDouble(pThis, argOne.get()); | 515 FX_DOUBLE dValue = ValueToDouble(pThis, argOne.get()); |
| 518 if (dValue < 0) | 516 if (dValue < 0) |
| 519 dValue = -dValue; | 517 dValue = -dValue; |
| 520 | 518 |
| 521 FXJSE_Value_SetDouble(args.GetReturnValue(), dValue); | 519 FXJSE_Value_SetDouble(args.GetReturnValue(), dValue); |
| 522 } | 520 } |
| 523 | 521 |
| 524 // static | 522 // static |
| 525 void CXFA_FM2JSContext::Avg(CFXJSE_Value* pThis, | 523 void CXFA_FM2JSContext::Avg(CFXJSE_Value* pThis, |
| 526 const CFX_ByteStringC& szFuncName, | 524 const CFX_ByteStringC& szFuncName, |
| 527 CFXJSE_Arguments& args) { | 525 CFXJSE_Arguments& args) { |
| 528 int32_t argc = args.GetLength(); | 526 int32_t argc = args.GetLength(); |
| 529 if (argc < 1) { | 527 if (argc < 1) { |
| 530 FXJSE_Value_SetNull(args.GetReturnValue()); | 528 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 531 return; | 529 return; |
| 532 } | 530 } |
| 533 | 531 |
| 534 CXFA_FM2JSContext* pContext = | 532 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 535 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 536 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 537 uint32_t uCount = 0; | 533 uint32_t uCount = 0; |
| 538 FX_DOUBLE dSum = 0.0; | 534 FX_DOUBLE dSum = 0.0; |
| 539 for (int32_t i = 0; i < argc; i++) { | 535 for (int32_t i = 0; i < argc; i++) { |
| 540 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 536 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 541 if (FXJSE_Value_IsNull(argValue.get())) | 537 if (FXJSE_Value_IsNull(argValue.get())) |
| 542 continue; | 538 continue; |
| 543 | 539 |
| 544 if (!FXJSE_Value_IsArray(argValue.get())) { | 540 if (!FXJSE_Value_IsArray(argValue.get())) { |
| 545 dSum += ValueToDouble(pThis, argValue.get()); | 541 dSum += ValueToDouble(pThis, argValue.get()); |
| 546 uCount++; | 542 uCount++; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 595 } | 591 } |
| 596 | 592 |
| 597 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum / uCount); | 593 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum / uCount); |
| 598 } | 594 } |
| 599 | 595 |
| 600 // static | 596 // static |
| 601 void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis, | 597 void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis, |
| 602 const CFX_ByteStringC& szFuncName, | 598 const CFX_ByteStringC& szFuncName, |
| 603 CFXJSE_Arguments& args) { | 599 CFXJSE_Arguments& args) { |
| 604 if (args.GetLength() != 1) { | 600 if (args.GetLength() != 1) { |
| 605 CXFA_FM2JSContext* pContext = | 601 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 606 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 602 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Ceil"); |
| 607 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 608 L"Ceil"); | |
| 609 return; | 603 return; |
| 610 } | 604 } |
| 611 | 605 |
| 612 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); | 606 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); |
| 613 if (ValueIsNull(pThis, argValue.get())) { | 607 if (ValueIsNull(pThis, argValue.get())) { |
| 614 FXJSE_Value_SetNull(args.GetReturnValue()); | 608 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 615 return; | 609 return; |
| 616 } | 610 } |
| 617 | 611 |
| 618 FXJSE_Value_SetFloat(args.GetReturnValue(), | 612 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| 619 FXSYS_ceil(ValueToFloat(pThis, argValue.get()))); | 613 FXSYS_ceil(ValueToFloat(pThis, argValue.get()))); |
| 620 } | 614 } |
| 621 | 615 |
| 622 // static | 616 // static |
| 623 void CXFA_FM2JSContext::Count(CFXJSE_Value* pThis, | 617 void CXFA_FM2JSContext::Count(CFXJSE_Value* pThis, |
| 624 const CFX_ByteStringC& szFuncName, | 618 const CFX_ByteStringC& szFuncName, |
| 625 CFXJSE_Arguments& args) { | 619 CFXJSE_Arguments& args) { |
| 626 CXFA_FM2JSContext* pContext = | 620 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 627 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 628 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 621 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 629 int32_t iCount = 0; | 622 int32_t iCount = 0; |
| 630 for (int32_t i = 0; i < args.GetLength(); i++) { | 623 for (int32_t i = 0; i < args.GetLength(); i++) { |
| 631 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 624 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 632 if (FXJSE_Value_IsNull(argValue.get())) | 625 if (FXJSE_Value_IsNull(argValue.get())) |
| 633 continue; | 626 continue; |
| 634 | 627 |
| 635 if (FXJSE_Value_IsArray(argValue.get())) { | 628 if (FXJSE_Value_IsArray(argValue.get())) { |
| 636 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 629 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 637 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); | 630 FXJSE_Value_GetObjectProp(argValue.get(), "length", lengthValue.get()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 679 } | 672 } |
| 680 } | 673 } |
| 681 FXJSE_Value_SetInteger(args.GetReturnValue(), iCount); | 674 FXJSE_Value_SetInteger(args.GetReturnValue(), iCount); |
| 682 } | 675 } |
| 683 | 676 |
| 684 // static | 677 // static |
| 685 void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis, | 678 void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis, |
| 686 const CFX_ByteStringC& szFuncName, | 679 const CFX_ByteStringC& szFuncName, |
| 687 CFXJSE_Arguments& args) { | 680 CFXJSE_Arguments& args) { |
| 688 if (args.GetLength() != 1) { | 681 if (args.GetLength() != 1) { |
| 689 CXFA_FM2JSContext* pContext = | 682 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 690 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 683 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Floor"); |
| 691 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 692 L"Floor"); | |
| 693 return; | 684 return; |
| 694 } | 685 } |
| 695 | 686 |
| 696 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); | 687 std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0); |
| 697 if (ValueIsNull(pThis, argValue.get())) { | 688 if (ValueIsNull(pThis, argValue.get())) { |
| 698 FXJSE_Value_SetNull(args.GetReturnValue()); | 689 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 699 return; | 690 return; |
| 700 } | 691 } |
| 701 | 692 |
| 702 FXJSE_Value_SetFloat(args.GetReturnValue(), | 693 FXJSE_Value_SetFloat(args.GetReturnValue(), |
| 703 FXSYS_floor(ValueToFloat(pThis, argValue.get()))); | 694 FXSYS_floor(ValueToFloat(pThis, argValue.get()))); |
| 704 } | 695 } |
| 705 | 696 |
| 706 // static | 697 // static |
| 707 void CXFA_FM2JSContext::Max(CFXJSE_Value* pThis, | 698 void CXFA_FM2JSContext::Max(CFXJSE_Value* pThis, |
| 708 const CFX_ByteStringC& szFuncName, | 699 const CFX_ByteStringC& szFuncName, |
| 709 CFXJSE_Arguments& args) { | 700 CFXJSE_Arguments& args) { |
| 710 CXFA_FM2JSContext* pContext = | 701 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 711 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 712 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 702 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 713 uint32_t uCount = 0; | 703 uint32_t uCount = 0; |
| 714 FX_DOUBLE dMaxValue = 0.0; | 704 FX_DOUBLE dMaxValue = 0.0; |
| 715 for (int32_t i = 0; i < args.GetLength(); i++) { | 705 for (int32_t i = 0; i < args.GetLength(); i++) { |
| 716 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 706 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 717 if (FXJSE_Value_IsNull(argValue.get())) | 707 if (FXJSE_Value_IsNull(argValue.get())) |
| 718 continue; | 708 continue; |
| 719 | 709 |
| 720 if (FXJSE_Value_IsArray(argValue.get())) { | 710 if (FXJSE_Value_IsArray(argValue.get())) { |
| 721 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 711 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 782 return; | 772 return; |
| 783 } | 773 } |
| 784 | 774 |
| 785 FXJSE_Value_SetDouble(args.GetReturnValue(), dMaxValue); | 775 FXJSE_Value_SetDouble(args.GetReturnValue(), dMaxValue); |
| 786 } | 776 } |
| 787 | 777 |
| 788 // static | 778 // static |
| 789 void CXFA_FM2JSContext::Min(CFXJSE_Value* pThis, | 779 void CXFA_FM2JSContext::Min(CFXJSE_Value* pThis, |
| 790 const CFX_ByteStringC& szFuncName, | 780 const CFX_ByteStringC& szFuncName, |
| 791 CFXJSE_Arguments& args) { | 781 CFXJSE_Arguments& args) { |
| 792 CXFA_FM2JSContext* pContext = | 782 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 793 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 794 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 783 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 795 uint32_t uCount = 0; | 784 uint32_t uCount = 0; |
| 796 FX_DOUBLE dMinValue = 0.0; | 785 FX_DOUBLE dMinValue = 0.0; |
| 797 for (int32_t i = 0; i < args.GetLength(); i++) { | 786 for (int32_t i = 0; i < args.GetLength(); i++) { |
| 798 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 787 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 799 if (FXJSE_Value_IsNull(argValue.get())) | 788 if (FXJSE_Value_IsNull(argValue.get())) |
| 800 continue; | 789 continue; |
| 801 | 790 |
| 802 if (FXJSE_Value_IsArray(argValue.get())) { | 791 if (FXJSE_Value_IsArray(argValue.get())) { |
| 803 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 792 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 864 return; | 853 return; |
| 865 } | 854 } |
| 866 | 855 |
| 867 FXJSE_Value_SetDouble(args.GetReturnValue(), dMinValue); | 856 FXJSE_Value_SetDouble(args.GetReturnValue(), dMinValue); |
| 868 } | 857 } |
| 869 | 858 |
| 870 // static | 859 // static |
| 871 void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis, | 860 void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis, |
| 872 const CFX_ByteStringC& szFuncName, | 861 const CFX_ByteStringC& szFuncName, |
| 873 CFXJSE_Arguments& args) { | 862 CFXJSE_Arguments& args) { |
| 874 CXFA_FM2JSContext* pContext = | 863 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 875 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 876 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 864 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 877 if (args.GetLength() != 2) { | 865 if (args.GetLength() != 2) { |
| 878 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 866 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 879 L"Mod"); | 867 L"Mod"); |
| 880 return; | 868 return; |
| 881 } | 869 } |
| 882 | 870 |
| 883 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 871 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 884 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); | 872 std::unique_ptr<CFXJSE_Value> argTwo = args.GetValue(1); |
| 885 if (FXJSE_Value_IsNull(argOne.get()) || FXJSE_Value_IsNull(argTwo.get())) { | 873 if (FXJSE_Value_IsNull(argOne.get()) || FXJSE_Value_IsNull(argTwo.get())) { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 951 } | 939 } |
| 952 | 940 |
| 953 FXJSE_Value_SetDouble(args.GetReturnValue(), | 941 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 954 dDividend - dDividor * (int32_t)(dDividend / dDividor)); | 942 dDividend - dDividor * (int32_t)(dDividend / dDividor)); |
| 955 } | 943 } |
| 956 | 944 |
| 957 // static | 945 // static |
| 958 void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis, | 946 void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis, |
| 959 const CFX_ByteStringC& szFuncName, | 947 const CFX_ByteStringC& szFuncName, |
| 960 CFXJSE_Arguments& args) { | 948 CFXJSE_Arguments& args) { |
| 961 CXFA_FM2JSContext* pContext = | 949 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 962 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 963 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 950 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 964 int32_t argc = args.GetLength(); | 951 int32_t argc = args.GetLength(); |
| 965 uint8_t uPrecision = 0; | 952 uint8_t uPrecision = 0; |
| 966 | 953 |
| 967 if (argc != 1 && argc != 2) { | 954 if (argc != 1 && argc != 2) { |
| 968 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 955 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 969 L"Round"); | 956 L"Round"); |
| 970 return; | 957 return; |
| 971 } | 958 } |
| 972 | 959 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1066 // static | 1053 // static |
| 1067 void CXFA_FM2JSContext::Sum(CFXJSE_Value* pThis, | 1054 void CXFA_FM2JSContext::Sum(CFXJSE_Value* pThis, |
| 1068 const CFX_ByteStringC& szFuncName, | 1055 const CFX_ByteStringC& szFuncName, |
| 1069 CFXJSE_Arguments& args) { | 1056 CFXJSE_Arguments& args) { |
| 1070 int32_t argc = args.GetLength(); | 1057 int32_t argc = args.GetLength(); |
| 1071 if (argc == 0) { | 1058 if (argc == 0) { |
| 1072 FXJSE_Value_SetNull(args.GetReturnValue()); | 1059 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1073 return; | 1060 return; |
| 1074 } | 1061 } |
| 1075 | 1062 |
| 1076 CXFA_FM2JSContext* pContext = | 1063 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 1077 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 1078 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 1064 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 1079 uint32_t uCount = 0; | 1065 uint32_t uCount = 0; |
| 1080 FX_DOUBLE dSum = 0.0; | 1066 FX_DOUBLE dSum = 0.0; |
| 1081 for (int32_t i = 0; i < argc; i++) { | 1067 for (int32_t i = 0; i < argc; i++) { |
| 1082 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); | 1068 std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i); |
| 1083 if (FXJSE_Value_IsNull(argValue.get())) | 1069 if (FXJSE_Value_IsNull(argValue.get())) |
| 1084 continue; | 1070 continue; |
| 1085 | 1071 |
| 1086 if (FXJSE_Value_IsArray(argValue.get())) { | 1072 if (FXJSE_Value_IsArray(argValue.get())) { |
| 1087 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 1073 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1144 } | 1130 } |
| 1145 | 1131 |
| 1146 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum); | 1132 FXJSE_Value_SetDouble(args.GetReturnValue(), dSum); |
| 1147 } | 1133 } |
| 1148 | 1134 |
| 1149 // static | 1135 // static |
| 1150 void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis, | 1136 void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis, |
| 1151 const CFX_ByteStringC& szFuncName, | 1137 const CFX_ByteStringC& szFuncName, |
| 1152 CFXJSE_Arguments& args) { | 1138 CFXJSE_Arguments& args) { |
| 1153 if (args.GetLength() != 0) { | 1139 if (args.GetLength() != 0) { |
| 1154 CXFA_FM2JSContext* pContext = | 1140 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1155 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1141 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date"); |
| 1156 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1157 L"Date"); | |
| 1158 return; | 1142 return; |
| 1159 } | 1143 } |
| 1160 | 1144 |
| 1161 time_t currentTime; | 1145 time_t currentTime; |
| 1162 time(¤tTime); | 1146 time(¤tTime); |
| 1163 struct tm* pTmStruct = gmtime(¤tTime); | 1147 struct tm* pTmStruct = gmtime(¤tTime); |
| 1164 | 1148 |
| 1165 CFX_ByteString bufferYear; | 1149 CFX_ByteString bufferYear; |
| 1166 CFX_ByteString bufferMon; | 1150 CFX_ByteString bufferMon; |
| 1167 CFX_ByteString bufferDay; | 1151 CFX_ByteString bufferDay; |
| 1168 bufferYear.Format("%d", pTmStruct->tm_year + 1900); | 1152 bufferYear.Format("%d", pTmStruct->tm_year + 1900); |
| 1169 bufferMon.Format("%02d", pTmStruct->tm_mon + 1); | 1153 bufferMon.Format("%02d", pTmStruct->tm_mon + 1); |
| 1170 bufferDay.Format("%02d", pTmStruct->tm_mday); | 1154 bufferDay.Format("%02d", pTmStruct->tm_mday); |
| 1171 | 1155 |
| 1172 CFX_ByteString bufferCurrent = bufferYear + bufferMon + bufferDay; | 1156 CFX_ByteString bufferCurrent = bufferYear + bufferMon + bufferDay; |
| 1173 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1157 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1174 DateString2Num(bufferCurrent.AsStringC())); | 1158 DateString2Num(bufferCurrent.AsStringC())); |
| 1175 } | 1159 } |
| 1176 | 1160 |
| 1177 // static | 1161 // static |
| 1178 void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis, | 1162 void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis, |
| 1179 const CFX_ByteStringC& szFuncName, | 1163 const CFX_ByteStringC& szFuncName, |
| 1180 CFXJSE_Arguments& args) { | 1164 CFXJSE_Arguments& args) { |
| 1181 int32_t argc = args.GetLength(); | 1165 int32_t argc = args.GetLength(); |
| 1182 if ((argc <= 0) || (argc >= 4)) { | 1166 if ((argc <= 0) || (argc >= 4)) { |
| 1183 CXFA_FM2JSContext* pContext = | 1167 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1184 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1168 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date2Num"); |
| 1185 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1186 L"Date2Num"); | |
| 1187 return; | 1169 return; |
| 1188 } | 1170 } |
| 1189 | 1171 |
| 1190 std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, args, 0); | 1172 std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, args, 0); |
| 1191 if (ValueIsNull(pThis, dateValue.get())) { | 1173 if (ValueIsNull(pThis, dateValue.get())) { |
| 1192 FXJSE_Value_SetNull(args.GetReturnValue()); | 1174 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1193 return; | 1175 return; |
| 1194 } | 1176 } |
| 1195 | 1177 |
| 1196 CFX_ByteString dateString; | 1178 CFX_ByteString dateString; |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 1226 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1208 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1227 DateString2Num(szIsoDateString.AsStringC())); | 1209 DateString2Num(szIsoDateString.AsStringC())); |
| 1228 } | 1210 } |
| 1229 | 1211 |
| 1230 // static | 1212 // static |
| 1231 void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis, | 1213 void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis, |
| 1232 const CFX_ByteStringC& szFuncName, | 1214 const CFX_ByteStringC& szFuncName, |
| 1233 CFXJSE_Arguments& args) { | 1215 CFXJSE_Arguments& args) { |
| 1234 int32_t argc = args.GetLength(); | 1216 int32_t argc = args.GetLength(); |
| 1235 if (argc >= 3) { | 1217 if (argc >= 3) { |
| 1236 CXFA_FM2JSContext* pContext = | 1218 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1237 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1219 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Date2Num"); |
| 1238 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1239 L"Date2Num"); | |
| 1240 return; | 1220 return; |
| 1241 } | 1221 } |
| 1242 | 1222 |
| 1243 int32_t iStyle = 0; | 1223 int32_t iStyle = 0; |
| 1244 if (argc > 0) { | 1224 if (argc > 0) { |
| 1245 std::unique_ptr<CFXJSE_Value> argStyle = GetSimpleValue(pThis, args, 0); | 1225 std::unique_ptr<CFXJSE_Value> argStyle = GetSimpleValue(pThis, args, 0); |
| 1246 if (FXJSE_Value_IsNull(argStyle.get())) { | 1226 if (FXJSE_Value_IsNull(argStyle.get())) { |
| 1247 FXJSE_Value_SetNull(args.GetReturnValue()); | 1227 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1248 return; | 1228 return; |
| 1249 } | 1229 } |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 1269 formatStr = ""; | 1249 formatStr = ""; |
| 1270 | 1250 |
| 1271 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1251 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1272 } | 1252 } |
| 1273 | 1253 |
| 1274 // static | 1254 // static |
| 1275 void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis, | 1255 void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis, |
| 1276 const CFX_ByteStringC& szFuncName, | 1256 const CFX_ByteStringC& szFuncName, |
| 1277 CFXJSE_Arguments& args) { | 1257 CFXJSE_Arguments& args) { |
| 1278 if (args.GetLength() != 1) { | 1258 if (args.GetLength() != 1) { |
| 1279 CXFA_FM2JSContext* pContext = | 1259 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1280 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1260 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"IsoDate2Num"); |
| 1281 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1282 L"IsoDate2Num"); | |
| 1283 return; | 1261 return; |
| 1284 } | 1262 } |
| 1285 | 1263 |
| 1286 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 1264 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 1287 if (FXJSE_Value_IsNull(argOne.get())) { | 1265 if (FXJSE_Value_IsNull(argOne.get())) { |
| 1288 FXJSE_Value_SetNull(args.GetReturnValue()); | 1266 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1289 return; | 1267 return; |
| 1290 } | 1268 } |
| 1291 | 1269 |
| 1292 CFX_ByteString szArgString; | 1270 CFX_ByteString szArgString; |
| 1293 ValueToUTF8String(argOne.get(), szArgString); | 1271 ValueToUTF8String(argOne.get(), szArgString); |
| 1294 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1272 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1295 DateString2Num(szArgString.AsStringC())); | 1273 DateString2Num(szArgString.AsStringC())); |
| 1296 } | 1274 } |
| 1297 | 1275 |
| 1298 // static | 1276 // static |
| 1299 void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis, | 1277 void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis, |
| 1300 const CFX_ByteStringC& szFuncName, | 1278 const CFX_ByteStringC& szFuncName, |
| 1301 CFXJSE_Arguments& args) { | 1279 CFXJSE_Arguments& args) { |
| 1302 CXFA_FM2JSContext* pContext = | 1280 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 1303 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 1304 if (args.GetLength() != 1) { | 1281 if (args.GetLength() != 1) { |
| 1305 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 1282 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 1306 L"IsoTime2Num"); | 1283 L"IsoTime2Num"); |
| 1307 return; | 1284 return; |
| 1308 } | 1285 } |
| 1309 | 1286 |
| 1310 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 1287 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 1311 if (ValueIsNull(pThis, argOne.get())) { | 1288 if (ValueIsNull(pThis, argOne.get())) { |
| 1312 FXJSE_Value_SetNull(args.GetReturnValue()); | 1289 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1313 return; | 1290 return; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1385 CFX_ByteString formatStr; | 1362 CFX_ByteString formatStr; |
| 1386 GetLocalDateFormat(pThis, iStyle, szLocal.AsStringC(), formatStr, FALSE); | 1363 GetLocalDateFormat(pThis, iStyle, szLocal.AsStringC(), formatStr, FALSE); |
| 1387 if (formatStr.IsEmpty()) { | 1364 if (formatStr.IsEmpty()) { |
| 1388 formatStr = ""; | 1365 formatStr = ""; |
| 1389 } | 1366 } |
| 1390 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1367 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1391 } else { | 1368 } else { |
| 1392 FXJSE_Value_SetNull(args.GetReturnValue()); | 1369 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1393 } | 1370 } |
| 1394 } else { | 1371 } else { |
| 1395 CXFA_FM2JSContext* pContext = | 1372 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1396 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1373 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"LocalDateFmt"); |
| 1397 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1398 L"LocalDateFmt"); | |
| 1399 } | 1374 } |
| 1400 } | 1375 } |
| 1401 | 1376 |
| 1402 // static | 1377 // static |
| 1403 void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis, | 1378 void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis, |
| 1404 const CFX_ByteStringC& szFuncName, | 1379 const CFX_ByteStringC& szFuncName, |
| 1405 CFXJSE_Arguments& args) { | 1380 CFXJSE_Arguments& args) { |
| 1406 int32_t argc = args.GetLength(); | 1381 int32_t argc = args.GetLength(); |
| 1407 if (argc < 3) { | 1382 if (argc < 3) { |
| 1408 FX_BOOL bFlags = FALSE; | 1383 FX_BOOL bFlags = FALSE; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1430 CFX_ByteString formatStr; | 1405 CFX_ByteString formatStr; |
| 1431 GetLocalTimeFormat(pThis, iStyle, szLocal.AsStringC(), formatStr, FALSE); | 1406 GetLocalTimeFormat(pThis, iStyle, szLocal.AsStringC(), formatStr, FALSE); |
| 1432 if (formatStr.IsEmpty()) { | 1407 if (formatStr.IsEmpty()) { |
| 1433 formatStr = ""; | 1408 formatStr = ""; |
| 1434 } | 1409 } |
| 1435 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1410 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1436 } else { | 1411 } else { |
| 1437 FXJSE_Value_SetNull(args.GetReturnValue()); | 1412 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1438 } | 1413 } |
| 1439 } else { | 1414 } else { |
| 1440 CXFA_FM2JSContext* pContext = | 1415 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1441 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1416 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"LocalTimeFmt"); |
| 1442 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1443 L"LocalTimeFmt"); | |
| 1444 } | 1417 } |
| 1445 } | 1418 } |
| 1446 | 1419 |
| 1447 // static | 1420 // static |
| 1448 void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis, | 1421 void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis, |
| 1449 const CFX_ByteStringC& szFuncName, | 1422 const CFX_ByteStringC& szFuncName, |
| 1450 CFXJSE_Arguments& args) { | 1423 CFXJSE_Arguments& args) { |
| 1451 int32_t argc = args.GetLength(); | 1424 int32_t argc = args.GetLength(); |
| 1452 if ((argc > 0) && (argc < 4)) { | 1425 if ((argc > 0) && (argc < 4)) { |
| 1453 FX_BOOL bFlags = FALSE; | 1426 FX_BOOL bFlags = FALSE; |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1579 szLocalDateString); | 1552 szLocalDateString); |
| 1580 if (szLocalDateString.IsEmpty()) { | 1553 if (szLocalDateString.IsEmpty()) { |
| 1581 szLocalDateString = ""; | 1554 szLocalDateString = ""; |
| 1582 } | 1555 } |
| 1583 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1556 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1584 szLocalDateString.AsStringC()); | 1557 szLocalDateString.AsStringC()); |
| 1585 } else { | 1558 } else { |
| 1586 FXJSE_Value_SetNull(args.GetReturnValue()); | 1559 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1587 } | 1560 } |
| 1588 } else { | 1561 } else { |
| 1589 CXFA_FM2JSContext* pContext = | 1562 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1590 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1563 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2Date"); |
| 1591 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1592 L"Num2Date"); | |
| 1593 } | 1564 } |
| 1594 } | 1565 } |
| 1595 | 1566 |
| 1596 // static | 1567 // static |
| 1597 void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis, | 1568 void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis, |
| 1598 const CFX_ByteStringC& szFuncName, | 1569 const CFX_ByteStringC& szFuncName, |
| 1599 CFXJSE_Arguments& args) { | 1570 CFXJSE_Arguments& args) { |
| 1600 int32_t argc = args.GetLength(); | 1571 int32_t argc = args.GetLength(); |
| 1601 if ((argc > 0) && (argc < 4)) { | 1572 if ((argc > 0) && (argc < 4)) { |
| 1602 FX_BOOL bFlags = FALSE; | 1573 FX_BOOL bFlags = FALSE; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1635 localString.AsStringC(), TRUE, szGMTTimeString); | 1606 localString.AsStringC(), TRUE, szGMTTimeString); |
| 1636 if (szGMTTimeString.IsEmpty()) { | 1607 if (szGMTTimeString.IsEmpty()) { |
| 1637 szGMTTimeString = ""; | 1608 szGMTTimeString = ""; |
| 1638 } | 1609 } |
| 1639 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1610 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1640 szGMTTimeString.AsStringC()); | 1611 szGMTTimeString.AsStringC()); |
| 1641 } else { | 1612 } else { |
| 1642 FXJSE_Value_SetNull(args.GetReturnValue()); | 1613 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1643 } | 1614 } |
| 1644 } else { | 1615 } else { |
| 1645 CXFA_FM2JSContext* pContext = | 1616 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1646 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1617 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2GMTime"); |
| 1647 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1648 L"Num2GMTime"); | |
| 1649 } | 1618 } |
| 1650 } | 1619 } |
| 1651 | 1620 |
| 1652 // static | 1621 // static |
| 1653 void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis, | 1622 void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis, |
| 1654 const CFX_ByteStringC& szFuncName, | 1623 const CFX_ByteStringC& szFuncName, |
| 1655 CFXJSE_Arguments& args) { | 1624 CFXJSE_Arguments& args) { |
| 1656 int32_t argc = args.GetLength(); | 1625 int32_t argc = args.GetLength(); |
| 1657 if ((argc > 0) && (argc < 4)) { | 1626 if ((argc > 0) && (argc < 4)) { |
| 1658 FX_BOOL bFlags = FALSE; | 1627 FX_BOOL bFlags = FALSE; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1691 localString.AsStringC(), FALSE, szLocalTimeString); | 1660 localString.AsStringC(), FALSE, szLocalTimeString); |
| 1692 if (szLocalTimeString.IsEmpty()) { | 1661 if (szLocalTimeString.IsEmpty()) { |
| 1693 szLocalTimeString = ""; | 1662 szLocalTimeString = ""; |
| 1694 } | 1663 } |
| 1695 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 1664 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 1696 szLocalTimeString.AsStringC()); | 1665 szLocalTimeString.AsStringC()); |
| 1697 } else { | 1666 } else { |
| 1698 FXJSE_Value_SetNull(args.GetReturnValue()); | 1667 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1699 } | 1668 } |
| 1700 } else { | 1669 } else { |
| 1701 CXFA_FM2JSContext* pContext = | 1670 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1702 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1671 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Num2Time"); |
| 1703 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1704 L"Num2Time"); | |
| 1705 } | 1672 } |
| 1706 } | 1673 } |
| 1707 | 1674 |
| 1708 // static | 1675 // static |
| 1709 void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis, | 1676 void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis, |
| 1710 const CFX_ByteStringC& szFuncName, | 1677 const CFX_ByteStringC& szFuncName, |
| 1711 CFXJSE_Arguments& args) { | 1678 CFXJSE_Arguments& args) { |
| 1712 if (args.GetLength() == 0) { | 1679 if (args.GetLength() == 0) { |
| 1713 time_t now; | 1680 time_t now; |
| 1714 time(&now); | 1681 time(&now); |
| 1715 struct tm* pGmt = gmtime(&now); | 1682 struct tm* pGmt = gmtime(&now); |
| 1716 int32_t iGMHour = pGmt->tm_hour; | 1683 int32_t iGMHour = pGmt->tm_hour; |
| 1717 int32_t iGMMin = pGmt->tm_min; | 1684 int32_t iGMMin = pGmt->tm_min; |
| 1718 int32_t iGMSec = pGmt->tm_sec; | 1685 int32_t iGMSec = pGmt->tm_sec; |
| 1719 FXJSE_Value_SetInteger(args.GetReturnValue(), | 1686 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 1720 ((iGMHour * 3600 + iGMMin * 60 + iGMSec) * 1000)); | 1687 ((iGMHour * 3600 + iGMMin * 60 + iGMSec) * 1000)); |
| 1721 } else { | 1688 } else { |
| 1722 CXFA_FM2JSContext* pContext = | 1689 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1723 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1690 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Time"); |
| 1724 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1725 L"Time"); | |
| 1726 } | 1691 } |
| 1727 } | 1692 } |
| 1728 | 1693 |
| 1729 // static | 1694 // static |
| 1730 void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis, | 1695 void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis, |
| 1731 const CFX_ByteStringC& szFuncName, | 1696 const CFX_ByteStringC& szFuncName, |
| 1732 CFXJSE_Arguments& args) { | 1697 CFXJSE_Arguments& args) { |
| 1733 int32_t argc = args.GetLength(); | 1698 int32_t argc = args.GetLength(); |
| 1734 if ((argc > 0) && (argc < 4)) { | 1699 if ((argc > 0) && (argc < 4)) { |
| 1735 FX_BOOL bFlags = FALSE; | 1700 FX_BOOL bFlags = FALSE; |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1753 } | 1718 } |
| 1754 if (argc == 3) { | 1719 if (argc == 3) { |
| 1755 std::unique_ptr<CFXJSE_Value> localValue = GetSimpleValue(pThis, args, 2); | 1720 std::unique_ptr<CFXJSE_Value> localValue = GetSimpleValue(pThis, args, 2); |
| 1756 if (ValueIsNull(pThis, localValue.get())) { | 1721 if (ValueIsNull(pThis, localValue.get())) { |
| 1757 bFlags = TRUE; | 1722 bFlags = TRUE; |
| 1758 } else { | 1723 } else { |
| 1759 ValueToUTF8String(localValue.get(), localString); | 1724 ValueToUTF8String(localValue.get(), localString); |
| 1760 } | 1725 } |
| 1761 } | 1726 } |
| 1762 if (!bFlags) { | 1727 if (!bFlags) { |
| 1763 CXFA_FM2JSContext* pContext = | 1728 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 1764 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 1765 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 1766 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 1729 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 1767 IFX_Locale* pLocale = nullptr; | 1730 IFX_Locale* pLocale = nullptr; |
| 1768 if (localString.IsEmpty()) { | 1731 if (localString.IsEmpty()) { |
| 1769 CXFA_Node* pThisNode = | 1732 CXFA_Node* pThisNode = |
| 1770 ToNode(pDoc->GetScriptContext()->GetThisObject()); | 1733 ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 1771 ASSERT(pThisNode); | 1734 ASSERT(pThisNode); |
| 1772 CXFA_WidgetData widgetData(pThisNode); | 1735 CXFA_WidgetData widgetData(pThisNode); |
| 1773 pLocale = widgetData.GetLocal(); | 1736 pLocale = widgetData.GetLocal(); |
| 1774 } else { | 1737 } else { |
| 1775 pLocale = pMgr->GetLocaleByName( | 1738 pLocale = pMgr->GetLocaleByName( |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1810 int32_t iResult = | 1773 int32_t iResult = |
| 1811 hour * 3600000 + min * 60000 + second * 1000 + milSecond + 1; | 1774 hour * 3600000 + min * 60000 + second * 1000 + milSecond + 1; |
| 1812 FXJSE_Value_SetInteger(args.GetReturnValue(), iResult); | 1775 FXJSE_Value_SetInteger(args.GetReturnValue(), iResult); |
| 1813 } else { | 1776 } else { |
| 1814 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 1777 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| 1815 } | 1778 } |
| 1816 } else { | 1779 } else { |
| 1817 FXJSE_Value_SetNull(args.GetReturnValue()); | 1780 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1818 } | 1781 } |
| 1819 } else { | 1782 } else { |
| 1820 CXFA_FM2JSContext* pContext = | 1783 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1821 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1784 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Time2Num"); |
| 1822 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1823 L"Time2Num"); | |
| 1824 } | 1785 } |
| 1825 } | 1786 } |
| 1826 | 1787 |
| 1827 // static | 1788 // static |
| 1828 void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis, | 1789 void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis, |
| 1829 const CFX_ByteStringC& szFuncName, | 1790 const CFX_ByteStringC& szFuncName, |
| 1830 CFXJSE_Arguments& args) { | 1791 CFXJSE_Arguments& args) { |
| 1831 int32_t argc = args.GetLength(); | 1792 int32_t argc = args.GetLength(); |
| 1832 if (argc < 3) { | 1793 if (argc < 3) { |
| 1833 FX_BOOL bFlags = FALSE; | 1794 FX_BOOL bFlags = FALSE; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1855 CFX_ByteString formatStr; | 1816 CFX_ByteString formatStr; |
| 1856 GetStandardTimeFormat(pThis, iStyle, szLocal.AsStringC(), formatStr); | 1817 GetStandardTimeFormat(pThis, iStyle, szLocal.AsStringC(), formatStr); |
| 1857 if (formatStr.IsEmpty()) { | 1818 if (formatStr.IsEmpty()) { |
| 1858 formatStr = ""; | 1819 formatStr = ""; |
| 1859 } | 1820 } |
| 1860 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); | 1821 FXJSE_Value_SetUTF8String(args.GetReturnValue(), formatStr.AsStringC()); |
| 1861 } else { | 1822 } else { |
| 1862 FXJSE_Value_SetNull(args.GetReturnValue()); | 1823 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 1863 } | 1824 } |
| 1864 } else { | 1825 } else { |
| 1865 CXFA_FM2JSContext* pContext = | 1826 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 1866 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 1827 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"TimeFmt"); |
| 1867 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 1868 L"TimeFmt"); | |
| 1869 } | 1828 } |
| 1870 } | 1829 } |
| 1871 | 1830 |
| 1872 // static | 1831 // static |
| 1873 FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData, | 1832 FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData, |
| 1874 int32_t iLength, | 1833 int32_t iLength, |
| 1875 int32_t& iStyle, | 1834 int32_t& iStyle, |
| 1876 int32_t& iYear, | 1835 int32_t& iYear, |
| 1877 int32_t& iMonth, | 1836 int32_t& iMonth, |
| 1878 int32_t& iDay) { | 1837 int32_t& iDay) { |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2193 iRet = TRUE; | 2152 iRet = TRUE; |
| 2194 return iRet; | 2153 return iRet; |
| 2195 } | 2154 } |
| 2196 | 2155 |
| 2197 // static | 2156 // static |
| 2198 FX_BOOL CXFA_FM2JSContext::Local2IsoDate(CFXJSE_Value* pThis, | 2157 FX_BOOL CXFA_FM2JSContext::Local2IsoDate(CFXJSE_Value* pThis, |
| 2199 const CFX_ByteStringC& szDate, | 2158 const CFX_ByteStringC& szDate, |
| 2200 const CFX_ByteStringC& szFormat, | 2159 const CFX_ByteStringC& szFormat, |
| 2201 const CFX_ByteStringC& szLocale, | 2160 const CFX_ByteStringC& szLocale, |
| 2202 CFX_ByteString& strIsoDate) { | 2161 CFX_ByteString& strIsoDate) { |
| 2203 CXFA_FM2JSContext* pContext = | 2162 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2204 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2205 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2206 if (!pDoc) { | 2163 if (!pDoc) { |
| 2207 return FALSE; | 2164 return FALSE; |
| 2208 } | 2165 } |
| 2209 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2166 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2210 IFX_Locale* pLocale = nullptr; | 2167 IFX_Locale* pLocale = nullptr; |
| 2211 if (szLocale.IsEmpty()) { | 2168 if (szLocale.IsEmpty()) { |
| 2212 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2169 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2213 ASSERT(pThisNode); | 2170 ASSERT(pThisNode); |
| 2214 CXFA_WidgetData widgetData(pThisNode); | 2171 CXFA_WidgetData widgetData(pThisNode); |
| 2215 pLocale = widgetData.GetLocal(); | 2172 pLocale = widgetData.GetLocal(); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 2231 strIsoDate.Format("%4d-%02d-%02d", dt.GetYear(), dt.GetMonth(), dt.GetDay()); | 2188 strIsoDate.Format("%4d-%02d-%02d", dt.GetYear(), dt.GetMonth(), dt.GetDay()); |
| 2232 return TRUE; | 2189 return TRUE; |
| 2233 } | 2190 } |
| 2234 | 2191 |
| 2235 // static | 2192 // static |
| 2236 FX_BOOL CXFA_FM2JSContext::Local2IsoTime(CFXJSE_Value* pThis, | 2193 FX_BOOL CXFA_FM2JSContext::Local2IsoTime(CFXJSE_Value* pThis, |
| 2237 const CFX_ByteStringC& szTime, | 2194 const CFX_ByteStringC& szTime, |
| 2238 const CFX_ByteStringC& szFormat, | 2195 const CFX_ByteStringC& szFormat, |
| 2239 const CFX_ByteStringC& szLocale, | 2196 const CFX_ByteStringC& szLocale, |
| 2240 CFX_ByteString& strIsoTime) { | 2197 CFX_ByteString& strIsoTime) { |
| 2241 CXFA_FM2JSContext* pContext = | 2198 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2242 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2243 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2244 if (!pDoc) { | 2199 if (!pDoc) { |
| 2245 return FALSE; | 2200 return FALSE; |
| 2246 } | 2201 } |
| 2247 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2202 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2248 IFX_Locale* pLocale = nullptr; | 2203 IFX_Locale* pLocale = nullptr; |
| 2249 if (szLocale.IsEmpty()) { | 2204 if (szLocale.IsEmpty()) { |
| 2250 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2205 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2251 ASSERT(pThisNode); | 2206 ASSERT(pThisNode); |
| 2252 CXFA_WidgetData widgetData(pThisNode); | 2207 CXFA_WidgetData widgetData(pThisNode); |
| 2253 pLocale = widgetData.GetLocal(); | 2208 pLocale = widgetData.GetLocal(); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 2272 utime.GetSecond(), utime.GetMillisecond()); | 2227 utime.GetSecond(), utime.GetMillisecond()); |
| 2273 return TRUE; | 2228 return TRUE; |
| 2274 } | 2229 } |
| 2275 | 2230 |
| 2276 // static | 2231 // static |
| 2277 FX_BOOL CXFA_FM2JSContext::IsoDate2Local(CFXJSE_Value* pThis, | 2232 FX_BOOL CXFA_FM2JSContext::IsoDate2Local(CFXJSE_Value* pThis, |
| 2278 const CFX_ByteStringC& szDate, | 2233 const CFX_ByteStringC& szDate, |
| 2279 const CFX_ByteStringC& szFormat, | 2234 const CFX_ByteStringC& szFormat, |
| 2280 const CFX_ByteStringC& szLocale, | 2235 const CFX_ByteStringC& szLocale, |
| 2281 CFX_ByteString& strLocalDate) { | 2236 CFX_ByteString& strLocalDate) { |
| 2282 CXFA_FM2JSContext* pContext = | 2237 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2283 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2284 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2285 if (!pDoc) { | 2238 if (!pDoc) { |
| 2286 return FALSE; | 2239 return FALSE; |
| 2287 } | 2240 } |
| 2288 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2241 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2289 IFX_Locale* pLocale = nullptr; | 2242 IFX_Locale* pLocale = nullptr; |
| 2290 if (szLocale.IsEmpty()) { | 2243 if (szLocale.IsEmpty()) { |
| 2291 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2244 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2292 ASSERT(pThisNode); | 2245 ASSERT(pThisNode); |
| 2293 CXFA_WidgetData widgetData(pThisNode); | 2246 CXFA_WidgetData widgetData(pThisNode); |
| 2294 pLocale = widgetData.GetLocal(); | 2247 pLocale = widgetData.GetLocal(); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 2312 strLocalDate = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()); | 2265 strLocalDate = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()); |
| 2313 return TRUE; | 2266 return TRUE; |
| 2314 } | 2267 } |
| 2315 | 2268 |
| 2316 // static | 2269 // static |
| 2317 FX_BOOL CXFA_FM2JSContext::IsoTime2Local(CFXJSE_Value* pThis, | 2270 FX_BOOL CXFA_FM2JSContext::IsoTime2Local(CFXJSE_Value* pThis, |
| 2318 const CFX_ByteStringC& szTime, | 2271 const CFX_ByteStringC& szTime, |
| 2319 const CFX_ByteStringC& szFormat, | 2272 const CFX_ByteStringC& szFormat, |
| 2320 const CFX_ByteStringC& szLocale, | 2273 const CFX_ByteStringC& szLocale, |
| 2321 CFX_ByteString& strLocalTime) { | 2274 CFX_ByteString& strLocalTime) { |
| 2322 CXFA_FM2JSContext* pContext = | 2275 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2323 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2324 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2325 if (!pDoc) { | 2276 if (!pDoc) { |
| 2326 return FALSE; | 2277 return FALSE; |
| 2327 } | 2278 } |
| 2328 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2279 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2329 IFX_Locale* pLocale = nullptr; | 2280 IFX_Locale* pLocale = nullptr; |
| 2330 if (szLocale.IsEmpty()) { | 2281 if (szLocale.IsEmpty()) { |
| 2331 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2282 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2332 ASSERT(pThisNode); | 2283 ASSERT(pThisNode); |
| 2333 CXFA_WidgetData widgetData(pThisNode); | 2284 CXFA_WidgetData widgetData(pThisNode); |
| 2334 pLocale = widgetData.GetLocal(); | 2285 pLocale = widgetData.GetLocal(); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 2354 strLocalTime = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()); | 2305 strLocalTime = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength()); |
| 2355 return TRUE; | 2306 return TRUE; |
| 2356 } | 2307 } |
| 2357 | 2308 |
| 2358 // static | 2309 // static |
| 2359 FX_BOOL CXFA_FM2JSContext::GetGMTTime(CFXJSE_Value* pThis, | 2310 FX_BOOL CXFA_FM2JSContext::GetGMTTime(CFXJSE_Value* pThis, |
| 2360 const CFX_ByteStringC& szTime, | 2311 const CFX_ByteStringC& szTime, |
| 2361 const CFX_ByteStringC& szFormat, | 2312 const CFX_ByteStringC& szFormat, |
| 2362 const CFX_ByteStringC& szLocale, | 2313 const CFX_ByteStringC& szLocale, |
| 2363 CFX_ByteString& strGMTTime) { | 2314 CFX_ByteString& strGMTTime) { |
| 2364 CXFA_FM2JSContext* pContext = | 2315 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2365 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2366 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2367 if (!pDoc) { | 2316 if (!pDoc) { |
| 2368 return FALSE; | 2317 return FALSE; |
| 2369 } | 2318 } |
| 2370 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2319 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2371 IFX_Locale* pLocale = nullptr; | 2320 IFX_Locale* pLocale = nullptr; |
| 2372 if (szLocale.IsEmpty()) { | 2321 if (szLocale.IsEmpty()) { |
| 2373 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2322 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2374 ASSERT(pThisNode); | 2323 ASSERT(pThisNode); |
| 2375 CXFA_WidgetData widgetData(pThisNode); | 2324 CXFA_WidgetData widgetData(pThisNode); |
| 2376 pLocale = widgetData.GetLocal(); | 2325 pLocale = widgetData.GetLocal(); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2491 case 3: | 2440 case 3: |
| 2492 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Long; | 2441 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Long; |
| 2493 break; | 2442 break; |
| 2494 case 4: | 2443 case 4: |
| 2495 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Full; | 2444 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Full; |
| 2496 break; | 2445 break; |
| 2497 default: | 2446 default: |
| 2498 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Medium; | 2447 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Medium; |
| 2499 break; | 2448 break; |
| 2500 } | 2449 } |
| 2501 CXFA_FM2JSContext* pContext = | 2450 |
| 2502 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2451 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2503 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2504 if (!pDoc) { | 2452 if (!pDoc) { |
| 2505 return; | 2453 return; |
| 2506 } | 2454 } |
| 2507 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2455 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2508 IFX_Locale* pLocale = nullptr; | 2456 IFX_Locale* pLocale = nullptr; |
| 2509 if (szLocalStr.IsEmpty()) { | 2457 if (szLocalStr.IsEmpty()) { |
| 2510 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2458 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2511 ASSERT(pThisNode); | 2459 ASSERT(pThisNode); |
| 2512 CXFA_WidgetData widgetData(pThisNode); | 2460 CXFA_WidgetData widgetData(pThisNode); |
| 2513 pLocale = widgetData.GetLocal(); | 2461 pLocale = widgetData.GetLocal(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2547 case 3: | 2495 case 3: |
| 2548 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Long; | 2496 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Long; |
| 2549 break; | 2497 break; |
| 2550 case 4: | 2498 case 4: |
| 2551 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Full; | 2499 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Full; |
| 2552 break; | 2500 break; |
| 2553 default: | 2501 default: |
| 2554 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Medium; | 2502 strStyle = FX_LOCALEDATETIMESUBCATEGORY_Medium; |
| 2555 break; | 2503 break; |
| 2556 } | 2504 } |
| 2557 CXFA_FM2JSContext* pContext = | 2505 |
| 2558 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 2506 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 2559 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 2560 if (!pDoc) { | 2507 if (!pDoc) { |
| 2561 return; | 2508 return; |
| 2562 } | 2509 } |
| 2563 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 2510 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 2564 IFX_Locale* pLocale = nullptr; | 2511 IFX_Locale* pLocale = nullptr; |
| 2565 if (szLocalStr.IsEmpty()) { | 2512 if (szLocalStr.IsEmpty()) { |
| 2566 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 2513 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| 2567 ASSERT(pThisNode); | 2514 ASSERT(pThisNode); |
| 2568 CXFA_WidgetData widgetData(pThisNode); | 2515 CXFA_WidgetData widgetData(pThisNode); |
| 2569 pLocale = widgetData.GetLocal(); | 2516 pLocale = widgetData.GetLocal(); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2652 int32_t iLocalSec = pLocal->tm_sec; | 2599 int32_t iLocalSec = pLocal->tm_sec; |
| 2653 iHour = iLocalHour - iGMHour; | 2600 iHour = iLocalHour - iGMHour; |
| 2654 iMin = iLocalMin - iGMMin; | 2601 iMin = iLocalMin - iGMMin; |
| 2655 iSec = iLocalSec - iGMSec; | 2602 iSec = iLocalSec - iGMSec; |
| 2656 } | 2603 } |
| 2657 | 2604 |
| 2658 // static | 2605 // static |
| 2659 void CXFA_FM2JSContext::Apr(CFXJSE_Value* pThis, | 2606 void CXFA_FM2JSContext::Apr(CFXJSE_Value* pThis, |
| 2660 const CFX_ByteStringC& szFuncName, | 2607 const CFX_ByteStringC& szFuncName, |
| 2661 CFXJSE_Arguments& args) { | 2608 CFXJSE_Arguments& args) { |
| 2662 CXFA_FM2JSContext* pContext = | 2609 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2663 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2664 if (args.GetLength() == 3) { | 2610 if (args.GetLength() == 3) { |
| 2665 FX_BOOL bFlags = FALSE; | 2611 FX_BOOL bFlags = FALSE; |
| 2666 FX_DOUBLE nPrincipal = 0; | 2612 FX_DOUBLE nPrincipal = 0; |
| 2667 FX_DOUBLE nPayment = 0; | 2613 FX_DOUBLE nPayment = 0; |
| 2668 FX_DOUBLE nPeriods = 0; | 2614 FX_DOUBLE nPeriods = 0; |
| 2669 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2615 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2670 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2616 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2671 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2617 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2672 bFlags = | 2618 bFlags = |
| 2673 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2619 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2717 } else { | 2663 } else { |
| 2718 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2664 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2719 L"Apr"); | 2665 L"Apr"); |
| 2720 } | 2666 } |
| 2721 } | 2667 } |
| 2722 | 2668 |
| 2723 // static | 2669 // static |
| 2724 void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis, | 2670 void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis, |
| 2725 const CFX_ByteStringC& szFuncName, | 2671 const CFX_ByteStringC& szFuncName, |
| 2726 CFXJSE_Arguments& args) { | 2672 CFXJSE_Arguments& args) { |
| 2727 CXFA_FM2JSContext* pContext = | 2673 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2728 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2729 if (args.GetLength() == 3) { | 2674 if (args.GetLength() == 3) { |
| 2730 FX_BOOL bFlags = FALSE; | 2675 FX_BOOL bFlags = FALSE; |
| 2731 FX_FLOAT nRate = 0; | 2676 FX_FLOAT nRate = 0; |
| 2732 FX_FLOAT nFutureValue = 0; | 2677 FX_FLOAT nFutureValue = 0; |
| 2733 FX_FLOAT nInitAmount = 0; | 2678 FX_FLOAT nInitAmount = 0; |
| 2734 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2679 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2735 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2680 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2736 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2681 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2737 bFlags = | 2682 bFlags = |
| 2738 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2683 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 2755 } else { | 2700 } else { |
| 2756 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2701 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2757 L"CTerm"); | 2702 L"CTerm"); |
| 2758 } | 2703 } |
| 2759 } | 2704 } |
| 2760 | 2705 |
| 2761 // static | 2706 // static |
| 2762 void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis, | 2707 void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis, |
| 2763 const CFX_ByteStringC& szFuncName, | 2708 const CFX_ByteStringC& szFuncName, |
| 2764 CFXJSE_Arguments& args) { | 2709 CFXJSE_Arguments& args) { |
| 2765 CXFA_FM2JSContext* pContext = | 2710 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2766 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2767 if (args.GetLength() == 3) { | 2711 if (args.GetLength() == 3) { |
| 2768 FX_BOOL bFlags = FALSE; | 2712 FX_BOOL bFlags = FALSE; |
| 2769 FX_DOUBLE nAmount = 0; | 2713 FX_DOUBLE nAmount = 0; |
| 2770 FX_DOUBLE nRate = 0; | 2714 FX_DOUBLE nRate = 0; |
| 2771 FX_DOUBLE nPeriod = 0; | 2715 FX_DOUBLE nPeriod = 0; |
| 2772 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2716 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2773 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2717 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2774 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2718 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2775 bFlags = | 2719 bFlags = |
| 2776 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2720 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 2801 } else { | 2745 } else { |
| 2802 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2746 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2803 L"FV"); | 2747 L"FV"); |
| 2804 } | 2748 } |
| 2805 } | 2749 } |
| 2806 | 2750 |
| 2807 // static | 2751 // static |
| 2808 void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis, | 2752 void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis, |
| 2809 const CFX_ByteStringC& szFuncName, | 2753 const CFX_ByteStringC& szFuncName, |
| 2810 CFXJSE_Arguments& args) { | 2754 CFXJSE_Arguments& args) { |
| 2811 CXFA_FM2JSContext* pContext = | 2755 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2812 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2813 if (args.GetLength() == 5) { | 2756 if (args.GetLength() == 5) { |
| 2814 FX_BOOL bFlags = FALSE; | 2757 FX_BOOL bFlags = FALSE; |
| 2815 FX_FLOAT nPrincpalAmount = 0; | 2758 FX_FLOAT nPrincpalAmount = 0; |
| 2816 FX_FLOAT nRate = 0; | 2759 FX_FLOAT nRate = 0; |
| 2817 FX_FLOAT nPayment = 0; | 2760 FX_FLOAT nPayment = 0; |
| 2818 FX_FLOAT nFirstMonth = 0; | 2761 FX_FLOAT nFirstMonth = 0; |
| 2819 FX_FLOAT nNumberOfMonths = 0; | 2762 FX_FLOAT nNumberOfMonths = 0; |
| 2820 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2763 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2821 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2764 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2822 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2765 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2873 } else { | 2816 } else { |
| 2874 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2817 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2875 L"IPmt"); | 2818 L"IPmt"); |
| 2876 } | 2819 } |
| 2877 } | 2820 } |
| 2878 | 2821 |
| 2879 // static | 2822 // static |
| 2880 void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis, | 2823 void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis, |
| 2881 const CFX_ByteStringC& szFuncName, | 2824 const CFX_ByteStringC& szFuncName, |
| 2882 CFXJSE_Arguments& args) { | 2825 CFXJSE_Arguments& args) { |
| 2883 CXFA_FM2JSContext* pContext = | 2826 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2884 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2885 int32_t argc = args.GetLength(); | 2827 int32_t argc = args.GetLength(); |
| 2886 if (argc > 2) { | 2828 if (argc > 2) { |
| 2887 FX_BOOL bFlags = FALSE; | 2829 FX_BOOL bFlags = FALSE; |
| 2888 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; | 2830 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; |
| 2889 for (int32_t i = 0; i < argc; i++) { | 2831 for (int32_t i = 0; i < argc; i++) { |
| 2890 argValues.push_back(GetSimpleValue(pThis, args, i)); | 2832 argValues.push_back(GetSimpleValue(pThis, args, i)); |
| 2891 if (ValueIsNull(pThis, argValues[i].get())) { | 2833 if (ValueIsNull(pThis, argValues[i].get())) { |
| 2892 bFlags = TRUE; | 2834 bFlags = TRUE; |
| 2893 } | 2835 } |
| 2894 } | 2836 } |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 2922 } else { | 2864 } else { |
| 2923 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2865 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2924 L"NPV"); | 2866 L"NPV"); |
| 2925 } | 2867 } |
| 2926 } | 2868 } |
| 2927 | 2869 |
| 2928 // static | 2870 // static |
| 2929 void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis, | 2871 void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis, |
| 2930 const CFX_ByteStringC& szFuncName, | 2872 const CFX_ByteStringC& szFuncName, |
| 2931 CFXJSE_Arguments& args) { | 2873 CFXJSE_Arguments& args) { |
| 2932 CXFA_FM2JSContext* pContext = | 2874 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2933 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2934 if (args.GetLength() == 3) { | 2875 if (args.GetLength() == 3) { |
| 2935 FX_BOOL bFlags = FALSE; | 2876 FX_BOOL bFlags = FALSE; |
| 2936 FX_FLOAT nPrincipal = 0; | 2877 FX_FLOAT nPrincipal = 0; |
| 2937 FX_FLOAT nRate = 0; | 2878 FX_FLOAT nRate = 0; |
| 2938 FX_FLOAT nPeriods = 0; | 2879 FX_FLOAT nPeriods = 0; |
| 2939 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2880 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2940 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2881 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2941 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2882 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 2942 bFlags = | 2883 bFlags = |
| 2943 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2884 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 2965 } else { | 2906 } else { |
| 2966 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2907 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 2967 L"Pmt"); | 2908 L"Pmt"); |
| 2968 } | 2909 } |
| 2969 } | 2910 } |
| 2970 | 2911 |
| 2971 // static | 2912 // static |
| 2972 void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis, | 2913 void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis, |
| 2973 const CFX_ByteStringC& szFuncName, | 2914 const CFX_ByteStringC& szFuncName, |
| 2974 CFXJSE_Arguments& args) { | 2915 CFXJSE_Arguments& args) { |
| 2975 CXFA_FM2JSContext* pContext = | 2916 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 2976 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 2977 if (args.GetLength() == 5) { | 2917 if (args.GetLength() == 5) { |
| 2978 FX_BOOL bFlags = FALSE; | 2918 FX_BOOL bFlags = FALSE; |
| 2979 FX_FLOAT nPrincpalAmount = 0; | 2919 FX_FLOAT nPrincpalAmount = 0; |
| 2980 FX_FLOAT nRate = 0; | 2920 FX_FLOAT nRate = 0; |
| 2981 FX_FLOAT nPayment = 0; | 2921 FX_FLOAT nPayment = 0; |
| 2982 FX_FLOAT nFirstMonth = 0; | 2922 FX_FLOAT nFirstMonth = 0; |
| 2983 FX_FLOAT nNumberOfMonths = 0; | 2923 FX_FLOAT nNumberOfMonths = 0; |
| 2984 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2924 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 2985 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2925 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 2986 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2926 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3038 } else { | 2978 } else { |
| 3039 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2979 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3040 L"PPmt"); | 2980 L"PPmt"); |
| 3041 } | 2981 } |
| 3042 } | 2982 } |
| 3043 | 2983 |
| 3044 // static | 2984 // static |
| 3045 void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis, | 2985 void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis, |
| 3046 const CFX_ByteStringC& szFuncName, | 2986 const CFX_ByteStringC& szFuncName, |
| 3047 CFXJSE_Arguments& args) { | 2987 CFXJSE_Arguments& args) { |
| 3048 CXFA_FM2JSContext* pContext = | 2988 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3049 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3050 if (args.GetLength() == 3) { | 2989 if (args.GetLength() == 3) { |
| 3051 FX_BOOL bFlags = FALSE; | 2990 FX_BOOL bFlags = FALSE; |
| 3052 FX_DOUBLE nAmount = 0; | 2991 FX_DOUBLE nAmount = 0; |
| 3053 FX_DOUBLE nRate = 0; | 2992 FX_DOUBLE nRate = 0; |
| 3054 FX_DOUBLE nPeriod = 0; | 2993 FX_DOUBLE nPeriod = 0; |
| 3055 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 2994 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3056 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 2995 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3057 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 2996 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 3058 bFlags = | 2997 bFlags = |
| 3059 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 2998 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 3080 } else { | 3019 } else { |
| 3081 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3020 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3082 L"PV"); | 3021 L"PV"); |
| 3083 } | 3022 } |
| 3084 } | 3023 } |
| 3085 | 3024 |
| 3086 // static | 3025 // static |
| 3087 void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis, | 3026 void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis, |
| 3088 const CFX_ByteStringC& szFuncName, | 3027 const CFX_ByteStringC& szFuncName, |
| 3089 CFXJSE_Arguments& args) { | 3028 CFXJSE_Arguments& args) { |
| 3090 CXFA_FM2JSContext* pContext = | 3029 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3091 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3092 if (args.GetLength() == 3) { | 3030 if (args.GetLength() == 3) { |
| 3093 FX_BOOL bFlags = FALSE; | 3031 FX_BOOL bFlags = FALSE; |
| 3094 FX_FLOAT nFuture = 0; | 3032 FX_FLOAT nFuture = 0; |
| 3095 FX_FLOAT nPresent = 0; | 3033 FX_FLOAT nPresent = 0; |
| 3096 FX_FLOAT nTotalNumber = 0; | 3034 FX_FLOAT nTotalNumber = 0; |
| 3097 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3035 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3098 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 3036 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3099 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 3037 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 3100 bFlags = | 3038 bFlags = |
| 3101 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 3039 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 3119 } else { | 3057 } else { |
| 3120 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3058 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3121 L"Rate"); | 3059 L"Rate"); |
| 3122 } | 3060 } |
| 3123 } | 3061 } |
| 3124 | 3062 |
| 3125 // static | 3063 // static |
| 3126 void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis, | 3064 void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis, |
| 3127 const CFX_ByteStringC& szFuncName, | 3065 const CFX_ByteStringC& szFuncName, |
| 3128 CFXJSE_Arguments& args) { | 3066 CFXJSE_Arguments& args) { |
| 3129 CXFA_FM2JSContext* pContext = | 3067 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3130 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3131 if (args.GetLength() == 3) { | 3068 if (args.GetLength() == 3) { |
| 3132 FX_BOOL bFlags = FALSE; | 3069 FX_BOOL bFlags = FALSE; |
| 3133 FX_FLOAT nMount = 0; | 3070 FX_FLOAT nMount = 0; |
| 3134 FX_FLOAT nRate = 0; | 3071 FX_FLOAT nRate = 0; |
| 3135 FX_FLOAT nFuture = 0; | 3072 FX_FLOAT nFuture = 0; |
| 3136 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3073 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3137 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 3074 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3138 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); | 3075 std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, args, 2); |
| 3139 bFlags = | 3076 bFlags = |
| 3140 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || | 3077 (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) || |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 3158 } else { | 3095 } else { |
| 3159 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3096 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3160 L"Term"); | 3097 L"Term"); |
| 3161 } | 3098 } |
| 3162 } | 3099 } |
| 3163 | 3100 |
| 3164 // static | 3101 // static |
| 3165 void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis, | 3102 void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis, |
| 3166 const CFX_ByteStringC& szFuncName, | 3103 const CFX_ByteStringC& szFuncName, |
| 3167 CFXJSE_Arguments& args) { | 3104 CFXJSE_Arguments& args) { |
| 3168 CXFA_FM2JSContext* pContext = | 3105 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3169 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3170 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3106 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 3171 int32_t argc = args.GetLength(); | 3107 int32_t argc = args.GetLength(); |
| 3172 if (argc > 1) { | 3108 if (argc > 1) { |
| 3173 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 3109 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 3174 FX_BOOL argOneIsNull = FALSE; | 3110 FX_BOOL argOneIsNull = FALSE; |
| 3175 int32_t iIndex = 0; | 3111 int32_t iIndex = 0; |
| 3176 argOneIsNull = ValueIsNull(pThis, argOne.get()); | 3112 argOneIsNull = ValueIsNull(pThis, argOne.get()); |
| 3177 if (!argOneIsNull) { | 3113 if (!argOneIsNull) { |
| 3178 iIndex = (int32_t)ValueToFloat(pThis, argOne.get()); | 3114 iIndex = (int32_t)ValueToFloat(pThis, argOne.get()); |
| 3179 } | 3115 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3235 bFound = TRUE; | 3171 bFound = TRUE; |
| 3236 } | 3172 } |
| 3237 } | 3173 } |
| 3238 iArgIndex++; | 3174 iArgIndex++; |
| 3239 } | 3175 } |
| 3240 if (!bFound) { | 3176 if (!bFound) { |
| 3241 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); | 3177 FXJSE_Value_SetUTF8String(args.GetReturnValue(), ""); |
| 3242 } | 3178 } |
| 3243 } | 3179 } |
| 3244 } else { | 3180 } else { |
| 3245 CXFA_FM2JSContext* pContext = | |
| 3246 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3247 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3181 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3248 L"Choose"); | 3182 L"Choose"); |
| 3249 } | 3183 } |
| 3250 } | 3184 } |
| 3251 | 3185 |
| 3252 // static | 3186 // static |
| 3253 void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis, | 3187 void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis, |
| 3254 const CFX_ByteStringC& szFuncName, | 3188 const CFX_ByteStringC& szFuncName, |
| 3255 CFXJSE_Arguments& args) { | 3189 CFXJSE_Arguments& args) { |
| 3256 if (args.GetLength() == 1) { | 3190 if (args.GetLength() == 1) { |
| 3257 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 3191 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 3258 FXJSE_Value_SetInteger(args.GetReturnValue(), | 3192 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 3259 FXJSE_Value_IsObject(argOne.get())); | 3193 FXJSE_Value_IsObject(argOne.get())); |
| 3260 } else { | 3194 } else { |
| 3261 CXFA_FM2JSContext* pContext = | 3195 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3262 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3196 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Exists"); |
| 3263 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3264 L"Exists"); | |
| 3265 } | 3197 } |
| 3266 } | 3198 } |
| 3267 | 3199 |
| 3268 // static | 3200 // static |
| 3269 void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis, | 3201 void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis, |
| 3270 const CFX_ByteStringC& szFuncName, | 3202 const CFX_ByteStringC& szFuncName, |
| 3271 CFXJSE_Arguments& args) { | 3203 CFXJSE_Arguments& args) { |
| 3272 if (args.GetLength() == 1) { | 3204 if (args.GetLength() == 1) { |
| 3273 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3205 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3274 if (FXJSE_Value_IsUTF8String(argOne.get())) { | 3206 if (FXJSE_Value_IsUTF8String(argOne.get())) { |
| 3275 CFX_ByteString valueStr; | 3207 CFX_ByteString valueStr; |
| 3276 FXJSE_Value_ToUTF8String(argOne.get(), valueStr); | 3208 FXJSE_Value_ToUTF8String(argOne.get(), valueStr); |
| 3277 valueStr.TrimLeft(); | 3209 valueStr.TrimLeft(); |
| 3278 FXJSE_Value_SetInteger(args.GetReturnValue(), (!valueStr.IsEmpty())); | 3210 FXJSE_Value_SetInteger(args.GetReturnValue(), (!valueStr.IsEmpty())); |
| 3279 } else if (FXJSE_Value_IsNumber(argOne.get()) || | 3211 } else if (FXJSE_Value_IsNumber(argOne.get()) || |
| 3280 FXJSE_Value_IsBoolean(argOne.get())) { | 3212 FXJSE_Value_IsBoolean(argOne.get())) { |
| 3281 FXJSE_Value_SetInteger(args.GetReturnValue(), TRUE); | 3213 FXJSE_Value_SetInteger(args.GetReturnValue(), TRUE); |
| 3282 } else { | 3214 } else { |
| 3283 FXJSE_Value_SetInteger(args.GetReturnValue(), FALSE); | 3215 FXJSE_Value_SetInteger(args.GetReturnValue(), FALSE); |
| 3284 } | 3216 } |
| 3285 } else { | 3217 } else { |
| 3286 CXFA_FM2JSContext* pContext = | 3218 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3287 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3219 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"HasValue"); |
| 3288 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3289 L"HasValue"); | |
| 3290 } | 3220 } |
| 3291 } | 3221 } |
| 3292 | 3222 |
| 3293 // static | 3223 // static |
| 3294 void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis, | 3224 void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis, |
| 3295 const CFX_ByteStringC& szFuncName, | 3225 const CFX_ByteStringC& szFuncName, |
| 3296 CFXJSE_Arguments& args) { | 3226 CFXJSE_Arguments& args) { |
| 3297 if (args.GetLength() > 1) { | 3227 if (args.GetLength() > 1) { |
| 3298 FX_BOOL bFlags = FALSE; | 3228 FX_BOOL bFlags = FALSE; |
| 3299 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3229 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3300 CFXJSE_Value** parametersValue = nullptr; | 3230 CFXJSE_Value** parametersValue = nullptr; |
| 3301 int32_t iCount = 0; | 3231 int32_t iCount = 0; |
| 3302 unfoldArgs(pThis, args, parametersValue, iCount, 1); | 3232 unfoldArgs(pThis, args, parametersValue, iCount, 1); |
| 3303 for (int32_t i = 0; i < iCount; i++) { | 3233 for (int32_t i = 0; i < iCount; i++) { |
| 3304 if (simpleValueCompare(pThis, argOne.get(), parametersValue[i])) { | 3234 if (simpleValueCompare(pThis, argOne.get(), parametersValue[i])) { |
| 3305 bFlags = TRUE; | 3235 bFlags = TRUE; |
| 3306 break; | 3236 break; |
| 3307 } | 3237 } |
| 3308 } | 3238 } |
| 3309 FXJSE_Value_SetInteger(args.GetReturnValue(), bFlags); | 3239 FXJSE_Value_SetInteger(args.GetReturnValue(), bFlags); |
| 3310 for (int32_t i = 0; i < iCount; i++) { | 3240 for (int32_t i = 0; i < iCount; i++) { |
| 3311 delete parametersValue[i]; | 3241 delete parametersValue[i]; |
| 3312 } | 3242 } |
| 3313 FX_Free(parametersValue); | 3243 FX_Free(parametersValue); |
| 3314 } else { | 3244 } else { |
| 3315 CXFA_FM2JSContext* pContext = | 3245 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3316 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3246 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Oneof"); |
| 3317 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3318 L"Oneof"); | |
| 3319 } | 3247 } |
| 3320 } | 3248 } |
| 3321 | 3249 |
| 3322 // static | 3250 // static |
| 3323 void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis, | 3251 void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis, |
| 3324 const CFX_ByteStringC& szFuncName, | 3252 const CFX_ByteStringC& szFuncName, |
| 3325 CFXJSE_Arguments& args) { | 3253 CFXJSE_Arguments& args) { |
| 3326 if (args.GetLength() == 3) { | 3254 if (args.GetLength() == 3) { |
| 3327 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3255 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3328 if (FXJSE_Value_IsNull(argOne.get())) { | 3256 if (FXJSE_Value_IsNull(argOne.get())) { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 3344 ValueToUTF8String(argOne.get(), oneString); | 3272 ValueToUTF8String(argOne.get(), oneString); |
| 3345 ValueToUTF8String(argLow.get(), lowString); | 3273 ValueToUTF8String(argLow.get(), lowString); |
| 3346 ValueToUTF8String(argHeight.get(), heightString); | 3274 ValueToUTF8String(argHeight.get(), heightString); |
| 3347 FXJSE_Value_SetInteger( | 3275 FXJSE_Value_SetInteger( |
| 3348 args.GetReturnValue(), | 3276 args.GetReturnValue(), |
| 3349 ((oneString.Compare(lowString.AsStringC()) >= 0) && | 3277 ((oneString.Compare(lowString.AsStringC()) >= 0) && |
| 3350 (oneString.Compare(heightString.AsStringC()) <= 0))); | 3278 (oneString.Compare(heightString.AsStringC()) <= 0))); |
| 3351 } | 3279 } |
| 3352 } | 3280 } |
| 3353 } else { | 3281 } else { |
| 3354 CXFA_FM2JSContext* pContext = | 3282 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3355 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3283 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Within"); |
| 3356 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3357 L"Within"); | |
| 3358 } | 3284 } |
| 3359 } | 3285 } |
| 3360 | 3286 |
| 3361 // static | 3287 // static |
| 3362 void CXFA_FM2JSContext::If(CFXJSE_Value* pThis, | 3288 void CXFA_FM2JSContext::If(CFXJSE_Value* pThis, |
| 3363 const CFX_ByteStringC& szFuncName, | 3289 const CFX_ByteStringC& szFuncName, |
| 3364 CFXJSE_Arguments& args) { | 3290 CFXJSE_Arguments& args) { |
| 3365 if (args.GetLength() == 3) { | 3291 if (args.GetLength() == 3) { |
| 3366 std::unique_ptr<CFXJSE_Value> argCondition = GetSimpleValue(pThis, args, 0); | 3292 std::unique_ptr<CFXJSE_Value> argCondition = GetSimpleValue(pThis, args, 0); |
| 3367 std::unique_ptr<CFXJSE_Value> argFirstValue = | 3293 std::unique_ptr<CFXJSE_Value> argFirstValue = |
| 3368 GetSimpleValue(pThis, args, 1); | 3294 GetSimpleValue(pThis, args, 1); |
| 3369 std::unique_ptr<CFXJSE_Value> argSecondValue = | 3295 std::unique_ptr<CFXJSE_Value> argSecondValue = |
| 3370 GetSimpleValue(pThis, args, 2); | 3296 GetSimpleValue(pThis, args, 2); |
| 3371 FX_BOOL bCondition = FXJSE_Value_ToBoolean(argCondition.get()); | 3297 FX_BOOL bCondition = FXJSE_Value_ToBoolean(argCondition.get()); |
| 3372 FXJSE_Value_Set(args.GetReturnValue(), | 3298 FXJSE_Value_Set(args.GetReturnValue(), |
| 3373 bCondition ? argFirstValue.get() : argSecondValue.get()); | 3299 bCondition ? argFirstValue.get() : argSecondValue.get()); |
| 3374 } else { | 3300 } else { |
| 3375 CXFA_FM2JSContext* pContext = | 3301 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3376 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3302 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"If"); |
| 3377 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3378 L"If"); | |
| 3379 } | 3303 } |
| 3380 } | 3304 } |
| 3381 | 3305 |
| 3382 // static | 3306 // static |
| 3383 void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis, | 3307 void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis, |
| 3384 const CFX_ByteStringC& szFuncName, | 3308 const CFX_ByteStringC& szFuncName, |
| 3385 CFXJSE_Arguments& args) { | 3309 CFXJSE_Arguments& args) { |
| 3386 CXFA_FM2JSContext* pContext = | 3310 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3387 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3388 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3311 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 3389 if (args.GetLength() == 1) { | 3312 if (args.GetLength() == 1) { |
| 3390 std::unique_ptr<CFXJSE_Value> scriptValue = GetSimpleValue(pThis, args, 0); | 3313 std::unique_ptr<CFXJSE_Value> scriptValue = GetSimpleValue(pThis, args, 0); |
| 3391 CFX_ByteString utf8ScriptString; | 3314 CFX_ByteString utf8ScriptString; |
| 3392 ValueToUTF8String(scriptValue.get(), utf8ScriptString); | 3315 ValueToUTF8String(scriptValue.get(), utf8ScriptString); |
| 3393 if (utf8ScriptString.IsEmpty()) { | 3316 if (utf8ScriptString.IsEmpty()) { |
| 3394 FXJSE_Value_SetNull(args.GetReturnValue()); | 3317 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3395 } else { | 3318 } else { |
| 3396 CFX_WideTextBuf wsJavaScriptBuf; | 3319 CFX_WideTextBuf wsJavaScriptBuf; |
| 3397 CFX_WideString javaScript; | 3320 CFX_WideString javaScript; |
| 3398 CFX_WideString wsError; | 3321 CFX_WideString wsError; |
| 3399 CXFA_FM2JSContext::Translate( | 3322 CXFA_FM2JSContext::Translate( |
| 3400 CFX_WideString::FromUTF8(utf8ScriptString.AsStringC()).AsStringC(), | 3323 CFX_WideString::FromUTF8(utf8ScriptString.AsStringC()).AsStringC(), |
| 3401 wsJavaScriptBuf, wsError); | 3324 wsJavaScriptBuf, wsError); |
| 3402 CFXJSE_Context* pContext = | 3325 CFXJSE_Context* pTempContext = |
|
dsinclair
2016/06/01 14:49:33
Shadow'd variable.
| |
| 3403 FXJSE_Context_Create(pIsolate, nullptr, nullptr); | 3326 FXJSE_Context_Create(pIsolate, nullptr, nullptr); |
| 3404 std::unique_ptr<CFXJSE_Value> returnValue(new CFXJSE_Value(pIsolate)); | 3327 std::unique_ptr<CFXJSE_Value> returnValue(new CFXJSE_Value(pIsolate)); |
| 3405 javaScript = wsJavaScriptBuf.AsStringC(); | 3328 javaScript = wsJavaScriptBuf.AsStringC(); |
| 3406 FXJSE_ExecuteScript( | 3329 FXJSE_ExecuteScript( |
| 3407 pContext, | 3330 pTempContext, |
| 3408 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()).c_str(), | 3331 FX_UTF8Encode(javaScript.c_str(), javaScript.GetLength()).c_str(), |
| 3409 returnValue.get()); | 3332 returnValue.get()); |
| 3410 FXJSE_Value_Set(args.GetReturnValue(), returnValue.get()); | 3333 FXJSE_Value_Set(args.GetReturnValue(), returnValue.get()); |
| 3411 FXJSE_Context_Release(pContext); | 3334 FXJSE_Context_Release(pTempContext); |
| 3412 } | 3335 } |
| 3413 } else { | 3336 } else { |
| 3414 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 3337 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 3415 L"Eval"); | 3338 L"Eval"); |
| 3416 } | 3339 } |
| 3417 } | 3340 } |
| 3418 | 3341 |
| 3419 // static | 3342 // static |
| 3420 void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis, | 3343 void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis, |
| 3421 const CFX_ByteStringC& szFuncName, | 3344 const CFX_ByteStringC& szFuncName, |
| 3422 CFXJSE_Arguments& args) { | 3345 CFXJSE_Arguments& args) { |
| 3423 CXFA_FM2JSContext* pContext = | 3346 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 3424 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 3425 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 3347 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 3426 if (args.GetLength() == 1) { | 3348 if (args.GetLength() == 1) { |
| 3427 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 3349 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 3428 if (FXJSE_Value_IsNull(argOne.get())) { | 3350 if (FXJSE_Value_IsNull(argOne.get())) { |
| 3429 CFXJSE_Value* rgValues[3]; | 3351 CFXJSE_Value* rgValues[3]; |
| 3430 for (int32_t i = 0; i < 3; i++) | 3352 for (int32_t i = 0; i < 3; i++) |
| 3431 rgValues[i] = new CFXJSE_Value(pIsolate); | 3353 rgValues[i] = new CFXJSE_Value(pIsolate); |
| 3432 | 3354 |
| 3433 FXJSE_Value_SetInteger(rgValues[0], 4); | 3355 FXJSE_Value_SetInteger(rgValues[0], 4); |
| 3434 FXJSE_Value_SetNull(rgValues[1]); | 3356 FXJSE_Value_SetNull(rgValues[1]); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3594 break; | 3516 break; |
| 3595 case VALUETYPE_ISMP: | 3517 case VALUETYPE_ISMP: |
| 3596 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "mp"); | 3518 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "mp"); |
| 3597 break; | 3519 break; |
| 3598 default: | 3520 default: |
| 3599 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "in"); | 3521 FXJSE_Value_SetUTF8String(args.GetReturnValue(), "in"); |
| 3600 break; | 3522 break; |
| 3601 } | 3523 } |
| 3602 } | 3524 } |
| 3603 } else { | 3525 } else { |
| 3604 CXFA_FM2JSContext* pContext = | 3526 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3605 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3527 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"UnitType"); |
| 3606 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3607 L"UnitType"); | |
| 3608 } | 3528 } |
| 3609 } | 3529 } |
| 3610 | 3530 |
| 3611 // static | 3531 // static |
| 3612 void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis, | 3532 void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis, |
| 3613 const CFX_ByteStringC& szFuncName, | 3533 const CFX_ByteStringC& szFuncName, |
| 3614 CFXJSE_Arguments& args) { | 3534 CFXJSE_Arguments& args) { |
| 3615 int32_t argc = args.GetLength(); | 3535 int32_t argc = args.GetLength(); |
| 3616 if ((argc == 1) || (argc == 2)) { | 3536 if ((argc == 1) || (argc == 2)) { |
| 3617 std::unique_ptr<CFXJSE_Value> unitspanValue = | 3537 std::unique_ptr<CFXJSE_Value> unitspanValue = |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3752 } else { | 3672 } else { |
| 3753 dResult = dFirstNumber / 72000; | 3673 dResult = dFirstNumber / 72000; |
| 3754 } | 3674 } |
| 3755 } | 3675 } |
| 3756 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); | 3676 FXJSE_Value_SetDouble(args.GetReturnValue(), dResult); |
| 3757 } else { | 3677 } else { |
| 3758 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 3678 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| 3759 } | 3679 } |
| 3760 } | 3680 } |
| 3761 } else { | 3681 } else { |
| 3762 CXFA_FM2JSContext* pContext = | 3682 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3763 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3683 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"UnitValue"); |
| 3764 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3765 L"UnitValue"); | |
| 3766 } | 3684 } |
| 3767 } | 3685 } |
| 3768 | 3686 |
| 3769 // static | 3687 // static |
| 3770 void CXFA_FM2JSContext::At(CFXJSE_Value* pThis, | 3688 void CXFA_FM2JSContext::At(CFXJSE_Value* pThis, |
| 3771 const CFX_ByteStringC& szFuncName, | 3689 const CFX_ByteStringC& szFuncName, |
| 3772 CFXJSE_Arguments& args) { | 3690 CFXJSE_Arguments& args) { |
| 3773 if (args.GetLength() == 2) { | 3691 if (args.GetLength() == 2) { |
| 3774 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3692 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 3775 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 3693 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 3776 if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) { | 3694 if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) { |
| 3777 FXJSE_Value_SetNull(args.GetReturnValue()); | 3695 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3778 } else { | 3696 } else { |
| 3779 CFX_ByteString stringTwo; | 3697 CFX_ByteString stringTwo; |
| 3780 ValueToUTF8String(argTwo.get(), stringTwo); | 3698 ValueToUTF8String(argTwo.get(), stringTwo); |
| 3781 if (stringTwo.IsEmpty()) { | 3699 if (stringTwo.IsEmpty()) { |
| 3782 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); | 3700 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); |
| 3783 } else { | 3701 } else { |
| 3784 CFX_ByteString stringOne; | 3702 CFX_ByteString stringOne; |
| 3785 ValueToUTF8String(argOne.get(), stringOne); | 3703 ValueToUTF8String(argOne.get(), stringOne); |
| 3786 FX_STRSIZE iPosition = stringOne.Find(stringTwo.AsStringC()); | 3704 FX_STRSIZE iPosition = stringOne.Find(stringTwo.AsStringC()); |
| 3787 FXJSE_Value_SetInteger(args.GetReturnValue(), iPosition + 1); | 3705 FXJSE_Value_SetInteger(args.GetReturnValue(), iPosition + 1); |
| 3788 } | 3706 } |
| 3789 } | 3707 } |
| 3790 } else { | 3708 } else { |
| 3791 CXFA_FM2JSContext* pContext = | 3709 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3792 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3710 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"At"); |
| 3793 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3794 L"At"); | |
| 3795 } | 3711 } |
| 3796 } | 3712 } |
| 3797 | 3713 |
| 3798 // static | 3714 // static |
| 3799 void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis, | 3715 void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis, |
| 3800 const CFX_ByteStringC& szFuncName, | 3716 const CFX_ByteStringC& szFuncName, |
| 3801 CFXJSE_Arguments& args) { | 3717 CFXJSE_Arguments& args) { |
| 3802 int32_t argc = args.GetLength(); | 3718 int32_t argc = args.GetLength(); |
| 3803 if (argc >= 1) { | 3719 if (argc >= 1) { |
| 3804 CFX_ByteString resultString; | 3720 CFX_ByteString resultString; |
| 3805 FX_BOOL bAllNull = TRUE; | 3721 FX_BOOL bAllNull = TRUE; |
| 3806 | 3722 |
| 3807 for (int32_t i = 0; i < argc; i++) { | 3723 for (int32_t i = 0; i < argc; i++) { |
| 3808 std::unique_ptr<CFXJSE_Value> value = GetSimpleValue(pThis, args, i); | 3724 std::unique_ptr<CFXJSE_Value> value = GetSimpleValue(pThis, args, i); |
| 3809 if (!ValueIsNull(pThis, value.get())) { | 3725 if (!ValueIsNull(pThis, value.get())) { |
| 3810 CFX_ByteString valueStr; | 3726 CFX_ByteString valueStr; |
| 3811 ValueToUTF8String(value.get(), valueStr); | 3727 ValueToUTF8String(value.get(), valueStr); |
| 3812 resultString += valueStr; | 3728 resultString += valueStr; |
| 3813 bAllNull = FALSE; | 3729 bAllNull = FALSE; |
| 3814 } | 3730 } |
| 3815 } | 3731 } |
| 3816 | 3732 |
| 3817 if (bAllNull) { | 3733 if (bAllNull) { |
| 3818 FXJSE_Value_SetNull(args.GetReturnValue()); | 3734 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 3819 } else { | 3735 } else { |
| 3820 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 3736 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 3821 resultString.AsStringC()); | 3737 resultString.AsStringC()); |
| 3822 } | 3738 } |
| 3823 } else { | 3739 } else { |
| 3824 CXFA_FM2JSContext* pContext = | 3740 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3825 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3741 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Concat"); |
| 3826 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3827 L"Concat"); | |
| 3828 } | 3742 } |
| 3829 } | 3743 } |
| 3830 | 3744 |
| 3831 // static | 3745 // static |
| 3832 void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis, | 3746 void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis, |
| 3833 const CFX_ByteStringC& szFuncName, | 3747 const CFX_ByteStringC& szFuncName, |
| 3834 CFXJSE_Arguments& args) { | 3748 CFXJSE_Arguments& args) { |
| 3835 int32_t argc = args.GetLength(); | 3749 int32_t argc = args.GetLength(); |
| 3836 if (argc == 1) { | 3750 if (argc == 1) { |
| 3837 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 3751 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 3858 if (identifyString.EqualNoCase("html")) { | 3772 if (identifyString.EqualNoCase("html")) { |
| 3859 DecodeHTML(toDecodeString.AsStringC(), resultBuf); | 3773 DecodeHTML(toDecodeString.AsStringC(), resultBuf); |
| 3860 } else if (identifyString.EqualNoCase("xml")) { | 3774 } else if (identifyString.EqualNoCase("xml")) { |
| 3861 DecodeXML(toDecodeString.AsStringC(), resultBuf); | 3775 DecodeXML(toDecodeString.AsStringC(), resultBuf); |
| 3862 } else { | 3776 } else { |
| 3863 DecodeURL(toDecodeString.AsStringC(), resultBuf); | 3777 DecodeURL(toDecodeString.AsStringC(), resultBuf); |
| 3864 } | 3778 } |
| 3865 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 3779 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 3866 } | 3780 } |
| 3867 } else { | 3781 } else { |
| 3868 CXFA_FM2JSContext* pContext = | 3782 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 3869 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 3783 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Decode"); |
| 3870 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 3871 L"Decode"); | |
| 3872 } | 3784 } |
| 3873 } | 3785 } |
| 3874 | 3786 |
| 3875 // static | 3787 // static |
| 3876 void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString, | 3788 void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString, |
| 3877 CFX_ByteTextBuf& szResultString) { | 3789 CFX_ByteTextBuf& szResultString) { |
| 3878 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); | 3790 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); |
| 3879 const FX_WCHAR* pData = wsURLString.c_str(); | 3791 const FX_WCHAR* pData = wsURLString.c_str(); |
| 3880 int32_t iLen = wsURLString.GetLength(); | 3792 int32_t iLen = wsURLString.GetLength(); |
| 3881 int32_t i = 0; | 3793 int32_t i = 0; |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4134 if (identifyString.EqualNoCase("html")) { | 4046 if (identifyString.EqualNoCase("html")) { |
| 4135 EncodeHTML(toEncodeString.AsStringC(), resultBuf); | 4047 EncodeHTML(toEncodeString.AsStringC(), resultBuf); |
| 4136 } else if (identifyString.EqualNoCase("xml")) { | 4048 } else if (identifyString.EqualNoCase("xml")) { |
| 4137 EncodeXML(toEncodeString.AsStringC(), resultBuf); | 4049 EncodeXML(toEncodeString.AsStringC(), resultBuf); |
| 4138 } else { | 4050 } else { |
| 4139 EncodeURL(toEncodeString.AsStringC(), resultBuf); | 4051 EncodeURL(toEncodeString.AsStringC(), resultBuf); |
| 4140 } | 4052 } |
| 4141 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 4053 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 4142 } | 4054 } |
| 4143 } else { | 4055 } else { |
| 4144 CXFA_FM2JSContext* pContext = | 4056 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4145 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4057 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Encode"); |
| 4146 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4147 L"Encode"); | |
| 4148 } | 4058 } |
| 4149 } | 4059 } |
| 4150 | 4060 |
| 4151 // static | 4061 // static |
| 4152 void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString, | 4062 void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString, |
| 4153 CFX_ByteTextBuf& szResultBuf) { | 4063 CFX_ByteTextBuf& szResultBuf) { |
| 4154 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); | 4064 CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString); |
| 4155 CFX_WideTextBuf wsResultBuf; | 4065 CFX_WideTextBuf wsResultBuf; |
| 4156 FX_WCHAR ch = 0; | 4066 FX_WCHAR ch = 0; |
| 4157 int32_t iLength = wsURLString.GetLength(); | 4067 int32_t iLength = wsURLString.GetLength(); |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4437 iStart = iMid + 1; | 4347 iStart = iMid + 1; |
| 4438 } | 4348 } |
| 4439 } while (iStart <= iEnd); | 4349 } while (iStart <= iEnd); |
| 4440 return FALSE; | 4350 return FALSE; |
| 4441 } | 4351 } |
| 4442 | 4352 |
| 4443 // static | 4353 // static |
| 4444 void CXFA_FM2JSContext::Format(CFXJSE_Value* pThis, | 4354 void CXFA_FM2JSContext::Format(CFXJSE_Value* pThis, |
| 4445 const CFX_ByteStringC& szFuncName, | 4355 const CFX_ByteStringC& szFuncName, |
| 4446 CFXJSE_Arguments& args) { | 4356 CFXJSE_Arguments& args) { |
| 4447 CXFA_FM2JSContext* pContext = | 4357 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 4448 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 4449 if (args.GetLength() >= 2) { | 4358 if (args.GetLength() >= 2) { |
| 4450 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4359 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4451 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 4360 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 4452 CFX_ByteString szPattern; | 4361 CFX_ByteString szPattern; |
| 4453 ValueToUTF8String(argOne.get(), szPattern); | 4362 ValueToUTF8String(argOne.get(), szPattern); |
| 4454 CFX_ByteString szValue; | 4363 CFX_ByteString szValue; |
| 4455 ValueToUTF8String(argTwo.get(), szValue); | 4364 ValueToUTF8String(argTwo.get(), szValue); |
| 4456 CXFA_Document* pDoc = pContext->GetDocument(); | 4365 CXFA_Document* pDoc = pContext->GetDocument(); |
| 4457 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); | 4366 IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr(); |
| 4458 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); | 4367 CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject()); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4543 CFX_ByteString sourceString; | 4452 CFX_ByteString sourceString; |
| 4544 ValueToUTF8String(argOne.get(), sourceString); | 4453 ValueToUTF8String(argOne.get(), sourceString); |
| 4545 int32_t count = ValueToInteger(pThis, argTwo.get()); | 4454 int32_t count = ValueToInteger(pThis, argTwo.get()); |
| 4546 if (count < 0) { | 4455 if (count < 0) { |
| 4547 count = 0; | 4456 count = 0; |
| 4548 } | 4457 } |
| 4549 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4458 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4550 sourceString.Left(count).AsStringC()); | 4459 sourceString.Left(count).AsStringC()); |
| 4551 } | 4460 } |
| 4552 } else { | 4461 } else { |
| 4553 CXFA_FM2JSContext* pContext = | 4462 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4554 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4463 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Left"); |
| 4555 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4556 L"Left"); | |
| 4557 } | 4464 } |
| 4558 } | 4465 } |
| 4559 | 4466 |
| 4560 // static | 4467 // static |
| 4561 void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis, | 4468 void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis, |
| 4562 const CFX_ByteStringC& szFuncName, | 4469 const CFX_ByteStringC& szFuncName, |
| 4563 CFXJSE_Arguments& args) { | 4470 CFXJSE_Arguments& args) { |
| 4564 if (args.GetLength() == 1) { | 4471 if (args.GetLength() == 1) { |
| 4565 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4472 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4566 if (ValueIsNull(pThis, argOne.get())) { | 4473 if (ValueIsNull(pThis, argOne.get())) { |
| 4567 FXJSE_Value_SetNull(args.GetReturnValue()); | 4474 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4568 } else { | 4475 } else { |
| 4569 CFX_ByteString sourceString; | 4476 CFX_ByteString sourceString; |
| 4570 ValueToUTF8String(argOne.get(), sourceString); | 4477 ValueToUTF8String(argOne.get(), sourceString); |
| 4571 FXJSE_Value_SetInteger(args.GetReturnValue(), sourceString.GetLength()); | 4478 FXJSE_Value_SetInteger(args.GetReturnValue(), sourceString.GetLength()); |
| 4572 } | 4479 } |
| 4573 } else { | 4480 } else { |
| 4574 CXFA_FM2JSContext* pContext = | 4481 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4575 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4482 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Len"); |
| 4576 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4577 L"Len"); | |
| 4578 } | 4483 } |
| 4579 } | 4484 } |
| 4580 | 4485 |
| 4581 // static | 4486 // static |
| 4582 void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis, | 4487 void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis, |
| 4583 const CFX_ByteStringC& szFuncName, | 4488 const CFX_ByteStringC& szFuncName, |
| 4584 CFXJSE_Arguments& args) { | 4489 CFXJSE_Arguments& args) { |
| 4585 int32_t argc = args.GetLength(); | 4490 int32_t argc = args.GetLength(); |
| 4586 if ((argc > 0) && (argc < 3)) { | 4491 if ((argc > 0) && (argc < 3)) { |
| 4587 CFX_ByteString argString; | 4492 CFX_ByteString argString; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 4609 lowStringBuf.AppendChar(ch); | 4514 lowStringBuf.AppendChar(ch); |
| 4610 ++i; | 4515 ++i; |
| 4611 } | 4516 } |
| 4612 lowStringBuf.AppendChar(0); | 4517 lowStringBuf.AppendChar(0); |
| 4613 FXJSE_Value_SetUTF8String( | 4518 FXJSE_Value_SetUTF8String( |
| 4614 args.GetReturnValue(), | 4519 args.GetReturnValue(), |
| 4615 FX_UTF8Encode(lowStringBuf.GetBuffer(), lowStringBuf.GetLength()) | 4520 FX_UTF8Encode(lowStringBuf.GetBuffer(), lowStringBuf.GetLength()) |
| 4616 .AsStringC()); | 4521 .AsStringC()); |
| 4617 } | 4522 } |
| 4618 } else { | 4523 } else { |
| 4619 CXFA_FM2JSContext* pContext = | 4524 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4620 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4525 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Lower"); |
| 4621 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4622 L"Lower"); | |
| 4623 } | 4526 } |
| 4624 } | 4527 } |
| 4625 | 4528 |
| 4626 // static | 4529 // static |
| 4627 void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis, | 4530 void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis, |
| 4628 const CFX_ByteStringC& szFuncName, | 4531 const CFX_ByteStringC& szFuncName, |
| 4629 CFXJSE_Arguments& args) { | 4532 CFXJSE_Arguments& args) { |
| 4630 if (args.GetLength() == 1) { | 4533 if (args.GetLength() == 1) { |
| 4631 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4534 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4632 if (ValueIsNull(pThis, argOne.get())) { | 4535 if (ValueIsNull(pThis, argOne.get())) { |
| 4633 FXJSE_Value_SetNull(args.GetReturnValue()); | 4536 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4634 } else { | 4537 } else { |
| 4635 CFX_ByteString sourceString; | 4538 CFX_ByteString sourceString; |
| 4636 ValueToUTF8String(argOne.get(), sourceString); | 4539 ValueToUTF8String(argOne.get(), sourceString); |
| 4637 sourceString.TrimLeft(); | 4540 sourceString.TrimLeft(); |
| 4638 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4541 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4639 sourceString.AsStringC()); | 4542 sourceString.AsStringC()); |
| 4640 } | 4543 } |
| 4641 } else { | 4544 } else { |
| 4642 CXFA_FM2JSContext* pContext = | 4545 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4643 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4546 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Ltrim"); |
| 4644 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4645 L"Ltrim"); | |
| 4646 } | 4547 } |
| 4647 } | 4548 } |
| 4648 | 4549 |
| 4649 // static | 4550 // static |
| 4650 void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis, | 4551 void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis, |
| 4651 const CFX_ByteStringC& szFuncName, | 4552 const CFX_ByteStringC& szFuncName, |
| 4652 CFXJSE_Arguments& args) { | 4553 CFXJSE_Arguments& args) { |
| 4653 CXFA_FM2JSContext* pContext = | 4554 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 4654 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 4655 if (args.GetLength() == 2) { | 4555 if (args.GetLength() == 2) { |
| 4656 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4556 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4657 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 4557 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 4658 if (ValueIsNull(pThis, argTwo.get())) { | 4558 if (ValueIsNull(pThis, argTwo.get())) { |
| 4659 FXJSE_Value_SetNull(args.GetReturnValue()); | 4559 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4660 } else { | 4560 } else { |
| 4661 CFX_ByteString szPattern; | 4561 CFX_ByteString szPattern; |
| 4662 ValueToUTF8String(argOne.get(), szPattern); | 4562 ValueToUTF8String(argOne.get(), szPattern); |
| 4663 CFX_ByteString szValue; | 4563 CFX_ByteString szValue; |
| 4664 ValueToUTF8String(argTwo.get(), szValue); | 4564 ValueToUTF8String(argTwo.get(), szValue); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4835 } else { | 4735 } else { |
| 4836 resultString.AppendChar(ch); | 4736 resultString.AppendChar(ch); |
| 4837 } | 4737 } |
| 4838 } else { | 4738 } else { |
| 4839 resultString.AppendChar(ch); | 4739 resultString.AppendChar(ch); |
| 4840 } | 4740 } |
| 4841 } | 4741 } |
| 4842 resultString.AppendChar(0); | 4742 resultString.AppendChar(0); |
| 4843 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); | 4743 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); |
| 4844 } else { | 4744 } else { |
| 4845 CXFA_FM2JSContext* pContext = | 4745 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4846 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4746 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Replace"); |
| 4847 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4848 L"Replace"); | |
| 4849 } | 4747 } |
| 4850 } | 4748 } |
| 4851 | 4749 |
| 4852 // static | 4750 // static |
| 4853 void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis, | 4751 void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis, |
| 4854 const CFX_ByteStringC& szFuncName, | 4752 const CFX_ByteStringC& szFuncName, |
| 4855 CFXJSE_Arguments& args) { | 4753 CFXJSE_Arguments& args) { |
| 4856 if (args.GetLength() == 2) { | 4754 if (args.GetLength() == 2) { |
| 4857 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4755 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4858 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); | 4756 std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1); |
| 4859 FX_BOOL argIsNull = FALSE; | 4757 FX_BOOL argIsNull = FALSE; |
| 4860 if ((ValueIsNull(pThis, argOne.get())) || | 4758 if ((ValueIsNull(pThis, argOne.get())) || |
| 4861 (ValueIsNull(pThis, argTwo.get()))) { | 4759 (ValueIsNull(pThis, argTwo.get()))) { |
| 4862 argIsNull = TRUE; | 4760 argIsNull = TRUE; |
| 4863 } | 4761 } |
| 4864 if (argIsNull) { | 4762 if (argIsNull) { |
| 4865 FXJSE_Value_SetNull(args.GetReturnValue()); | 4763 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4866 } else { | 4764 } else { |
| 4867 CFX_ByteString sourceString; | 4765 CFX_ByteString sourceString; |
| 4868 ValueToUTF8String(argOne.get(), sourceString); | 4766 ValueToUTF8String(argOne.get(), sourceString); |
| 4869 int32_t count = ValueToInteger(pThis, argTwo.get()); | 4767 int32_t count = ValueToInteger(pThis, argTwo.get()); |
| 4870 if (count < 0) { | 4768 if (count < 0) { |
| 4871 count = 0; | 4769 count = 0; |
| 4872 } | 4770 } |
| 4873 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4771 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4874 sourceString.Right(count).AsStringC()); | 4772 sourceString.Right(count).AsStringC()); |
| 4875 } | 4773 } |
| 4876 } else { | 4774 } else { |
| 4877 CXFA_FM2JSContext* pContext = | 4775 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4878 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4776 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Right"); |
| 4879 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4880 L"Right"); | |
| 4881 } | 4777 } |
| 4882 } | 4778 } |
| 4883 | 4779 |
| 4884 // static | 4780 // static |
| 4885 void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis, | 4781 void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis, |
| 4886 const CFX_ByteStringC& szFuncName, | 4782 const CFX_ByteStringC& szFuncName, |
| 4887 CFXJSE_Arguments& args) { | 4783 CFXJSE_Arguments& args) { |
| 4888 if (args.GetLength() == 1) { | 4784 if (args.GetLength() == 1) { |
| 4889 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4785 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4890 if (ValueIsNull(pThis, argOne.get())) { | 4786 if (ValueIsNull(pThis, argOne.get())) { |
| 4891 FXJSE_Value_SetNull(args.GetReturnValue()); | 4787 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4892 } else { | 4788 } else { |
| 4893 CFX_ByteString sourceString; | 4789 CFX_ByteString sourceString; |
| 4894 ValueToUTF8String(argOne.get(), sourceString); | 4790 ValueToUTF8String(argOne.get(), sourceString); |
| 4895 sourceString.TrimRight(); | 4791 sourceString.TrimRight(); |
| 4896 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 4792 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 4897 sourceString.AsStringC()); | 4793 sourceString.AsStringC()); |
| 4898 } | 4794 } |
| 4899 } else { | 4795 } else { |
| 4900 CXFA_FM2JSContext* pContext = | 4796 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4901 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4797 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Rtrim"); |
| 4902 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4903 L"Rtrim"); | |
| 4904 } | 4798 } |
| 4905 } | 4799 } |
| 4906 | 4800 |
| 4907 // static | 4801 // static |
| 4908 void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis, | 4802 void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis, |
| 4909 const CFX_ByteStringC& szFuncName, | 4803 const CFX_ByteStringC& szFuncName, |
| 4910 CFXJSE_Arguments& args) { | 4804 CFXJSE_Arguments& args) { |
| 4911 if (args.GetLength() == 1) { | 4805 if (args.GetLength() == 1) { |
| 4912 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 4806 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 4913 if (FXJSE_Value_IsNull(argOne.get())) { | 4807 if (FXJSE_Value_IsNull(argOne.get())) { |
| 4914 FXJSE_Value_SetNull(args.GetReturnValue()); | 4808 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 4915 } else { | 4809 } else { |
| 4916 int32_t count = 0; | 4810 int32_t count = 0; |
| 4917 count = ValueToInteger(pThis, argOne.get()); | 4811 count = ValueToInteger(pThis, argOne.get()); |
| 4918 count = (count < 0) ? 0 : count; | 4812 count = (count < 0) ? 0 : count; |
| 4919 CFX_ByteTextBuf spaceString; | 4813 CFX_ByteTextBuf spaceString; |
| 4920 int32_t index = 0; | 4814 int32_t index = 0; |
| 4921 while (index < count) { | 4815 while (index < count) { |
| 4922 spaceString.AppendByte(' '); | 4816 spaceString.AppendByte(' '); |
| 4923 index++; | 4817 index++; |
| 4924 } | 4818 } |
| 4925 spaceString.AppendByte(0); | 4819 spaceString.AppendByte(0); |
| 4926 FXJSE_Value_SetUTF8String(args.GetReturnValue(), spaceString.AsStringC()); | 4820 FXJSE_Value_SetUTF8String(args.GetReturnValue(), spaceString.AsStringC()); |
| 4927 } | 4821 } |
| 4928 } else { | 4822 } else { |
| 4929 CXFA_FM2JSContext* pContext = | 4823 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 4930 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4824 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Space"); |
| 4931 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 4932 L"Space"); | |
| 4933 } | 4825 } |
| 4934 } | 4826 } |
| 4935 | 4827 |
| 4936 // static | 4828 // static |
| 4937 void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis, | 4829 void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis, |
| 4938 const CFX_ByteStringC& szFuncName, | 4830 const CFX_ByteStringC& szFuncName, |
| 4939 CFXJSE_Arguments& args) { | 4831 CFXJSE_Arguments& args) { |
| 4940 int32_t argc = args.GetLength(); | 4832 int32_t argc = args.GetLength(); |
| 4941 if ((argc > 0) && (argc < 4)) { | 4833 if ((argc > 0) && (argc < 4)) { |
| 4942 FX_BOOL bFlags = FALSE; | 4834 FX_BOOL bFlags = FALSE; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5039 ++i; | 4931 ++i; |
| 5040 } | 4932 } |
| 5041 resultBuf.AppendChar(0); | 4933 resultBuf.AppendChar(0); |
| 5042 } | 4934 } |
| 5043 } | 4935 } |
| 5044 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 4936 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 5045 } else { | 4937 } else { |
| 5046 FXJSE_Value_SetNull(args.GetReturnValue()); | 4938 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5047 } | 4939 } |
| 5048 } else { | 4940 } else { |
| 5049 CXFA_FM2JSContext* pContext = | 4941 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5050 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4942 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Str"); |
| 5051 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5052 L"Str"); | |
| 5053 } | 4943 } |
| 5054 } | 4944 } |
| 5055 | 4945 |
| 5056 // static | 4946 // static |
| 5057 void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis, | 4947 void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis, |
| 5058 const CFX_ByteStringC& szFuncName, | 4948 const CFX_ByteStringC& szFuncName, |
| 5059 CFXJSE_Arguments& args) { | 4949 CFXJSE_Arguments& args) { |
| 5060 int32_t argc = args.GetLength(); | 4950 int32_t argc = args.GetLength(); |
| 5061 if ((argc == 3) || (argc == 4)) { | 4951 if ((argc == 3) || (argc == 4)) { |
| 5062 CFX_ByteString sourceString; | 4952 CFX_ByteString sourceString; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5098 } | 4988 } |
| 5099 resultString << insertString.AsStringC(); | 4989 resultString << insertString.AsStringC(); |
| 5100 i = iStart + iDelete; | 4990 i = iStart + iDelete; |
| 5101 while (i < iLength) { | 4991 while (i < iLength) { |
| 5102 resultString.AppendChar(sourceString.GetAt(i)); | 4992 resultString.AppendChar(sourceString.GetAt(i)); |
| 5103 ++i; | 4993 ++i; |
| 5104 } | 4994 } |
| 5105 resultString.AppendChar(0); | 4995 resultString.AppendChar(0); |
| 5106 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); | 4996 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultString.AsStringC()); |
| 5107 } else { | 4997 } else { |
| 5108 CXFA_FM2JSContext* pContext = | 4998 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5109 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 4999 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Stuff"); |
| 5110 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5111 L"Stuff"); | |
| 5112 } | 5000 } |
| 5113 } | 5001 } |
| 5114 | 5002 |
| 5115 // static | 5003 // static |
| 5116 void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis, | 5004 void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis, |
| 5117 const CFX_ByteStringC& szFuncName, | 5005 const CFX_ByteStringC& szFuncName, |
| 5118 CFXJSE_Arguments& args) { | 5006 CFXJSE_Arguments& args) { |
| 5119 if (args.GetLength() == 3) { | 5007 if (args.GetLength() == 3) { |
| 5120 std::unique_ptr<CFXJSE_Value> stringValue = GetSimpleValue(pThis, args, 0); | 5008 std::unique_ptr<CFXJSE_Value> stringValue = GetSimpleValue(pThis, args, 0); |
| 5121 std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, args, 1); | 5009 std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, args, 1); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 5143 } | 5031 } |
| 5144 if (iCount <= 0) { | 5032 if (iCount <= 0) { |
| 5145 iCount = 0; | 5033 iCount = 0; |
| 5146 } | 5034 } |
| 5147 iStart -= 1; | 5035 iStart -= 1; |
| 5148 FXJSE_Value_SetUTF8String(args.GetReturnValue(), | 5036 FXJSE_Value_SetUTF8String(args.GetReturnValue(), |
| 5149 szSourceStr.Mid(iStart, iCount).AsStringC()); | 5037 szSourceStr.Mid(iStart, iCount).AsStringC()); |
| 5150 } | 5038 } |
| 5151 } | 5039 } |
| 5152 } else { | 5040 } else { |
| 5153 CXFA_FM2JSContext* pContext = | 5041 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5154 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5042 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Substr"); |
| 5155 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5156 L"Substr"); | |
| 5157 } | 5043 } |
| 5158 } | 5044 } |
| 5159 | 5045 |
| 5160 // static | 5046 // static |
| 5161 void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis, | 5047 void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis, |
| 5162 const CFX_ByteStringC& szFuncName, | 5048 const CFX_ByteStringC& szFuncName, |
| 5163 CFXJSE_Arguments& args) { | 5049 CFXJSE_Arguments& args) { |
| 5164 int32_t argc = args.GetLength(); | 5050 int32_t argc = args.GetLength(); |
| 5165 if ((argc == 0) || (argc == 1)) { | 5051 if ((argc == 0) || (argc == 1)) { |
| 5166 int32_t iNum = 0; | 5052 int32_t iNum = 0; |
| 5167 if (argc == 1) { | 5053 if (argc == 1) { |
| 5168 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5054 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 5169 iNum = (int32_t)ValueToFloat(pThis, argOne.get()); | 5055 iNum = (int32_t)ValueToFloat(pThis, argOne.get()); |
| 5170 } | 5056 } |
| 5171 FX_GUID guid; | 5057 FX_GUID guid; |
| 5172 FX_GUID_CreateV4(&guid); | 5058 FX_GUID_CreateV4(&guid); |
| 5173 CFX_ByteString bsUId; | 5059 CFX_ByteString bsUId; |
| 5174 FX_GUID_ToString(&guid, bsUId, iNum); | 5060 FX_GUID_ToString(&guid, bsUId, iNum); |
| 5175 FXJSE_Value_SetUTF8String(args.GetReturnValue(), bsUId.AsStringC()); | 5061 FXJSE_Value_SetUTF8String(args.GetReturnValue(), bsUId.AsStringC()); |
| 5176 } else { | 5062 } else { |
| 5177 CXFA_FM2JSContext* pContext = | 5063 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5178 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5064 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Uuid"); |
| 5179 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5180 L"Uuid"); | |
| 5181 } | 5065 } |
| 5182 } | 5066 } |
| 5183 | 5067 |
| 5184 // static | 5068 // static |
| 5185 void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis, | 5069 void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis, |
| 5186 const CFX_ByteStringC& szFuncName, | 5070 const CFX_ByteStringC& szFuncName, |
| 5187 CFXJSE_Arguments& args) { | 5071 CFXJSE_Arguments& args) { |
| 5188 int32_t argc = args.GetLength(); | 5072 int32_t argc = args.GetLength(); |
| 5189 if ((argc > 0) && (argc < 3)) { | 5073 if ((argc > 0) && (argc < 3)) { |
| 5190 CFX_ByteString argString; | 5074 CFX_ByteString argString; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 5212 upperStringBuf.AppendChar(ch); | 5096 upperStringBuf.AppendChar(ch); |
| 5213 ++i; | 5097 ++i; |
| 5214 } | 5098 } |
| 5215 upperStringBuf.AppendChar(0); | 5099 upperStringBuf.AppendChar(0); |
| 5216 FXJSE_Value_SetUTF8String( | 5100 FXJSE_Value_SetUTF8String( |
| 5217 args.GetReturnValue(), | 5101 args.GetReturnValue(), |
| 5218 FX_UTF8Encode(upperStringBuf.GetBuffer(), upperStringBuf.GetLength()) | 5102 FX_UTF8Encode(upperStringBuf.GetBuffer(), upperStringBuf.GetLength()) |
| 5219 .AsStringC()); | 5103 .AsStringC()); |
| 5220 } | 5104 } |
| 5221 } else { | 5105 } else { |
| 5222 CXFA_FM2JSContext* pContext = | 5106 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5223 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5107 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"Upper"); |
| 5224 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5225 L"Upper"); | |
| 5226 } | 5108 } |
| 5227 } | 5109 } |
| 5228 | 5110 |
| 5229 // static | 5111 // static |
| 5230 void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis, | 5112 void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis, |
| 5231 const CFX_ByteStringC& szFuncName, | 5113 const CFX_ByteStringC& szFuncName, |
| 5232 CFXJSE_Arguments& args) { | 5114 CFXJSE_Arguments& args) { |
| 5233 int32_t argc = args.GetLength(); | 5115 int32_t argc = args.GetLength(); |
| 5234 if ((argc > 0) && (argc < 4)) { | 5116 if ((argc > 0) && (argc < 4)) { |
| 5235 FX_BOOL bFlags = FALSE; | 5117 FX_BOOL bFlags = FALSE; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5267 CFX_ByteTextBuf resultBuf; | 5149 CFX_ByteTextBuf resultBuf; |
| 5268 CFX_ByteString numberString; | 5150 CFX_ByteString numberString; |
| 5269 numberString.Format("%.2f", fNumber); | 5151 numberString.Format("%.2f", fNumber); |
| 5270 WordUS(numberString.AsStringC(), iIdentifier, resultBuf); | 5152 WordUS(numberString.AsStringC(), iIdentifier, resultBuf); |
| 5271 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); | 5153 FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC()); |
| 5272 } | 5154 } |
| 5273 } else { | 5155 } else { |
| 5274 FXJSE_Value_SetNull(args.GetReturnValue()); | 5156 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5275 } | 5157 } |
| 5276 } else { | 5158 } else { |
| 5277 CXFA_FM2JSContext* pContext = | 5159 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5278 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5160 XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"WordNum"); |
| 5279 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | |
| 5280 L"WordNum"); | |
| 5281 } | 5161 } |
| 5282 } | 5162 } |
| 5283 | 5163 |
| 5284 // static | 5164 // static |
| 5285 void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData, | 5165 void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData, |
| 5286 CFX_ByteTextBuf& strBuf) { | 5166 CFX_ByteTextBuf& strBuf) { |
| 5287 CFX_ByteStringC pUnits[] = {"zero", "one", "two", "three", "four", | 5167 CFX_ByteStringC pUnits[] = {"zero", "one", "two", "three", "four", |
| 5288 "five", "six", "seven", "eight", "nine"}; | 5168 "five", "six", "seven", "eight", "nine"}; |
| 5289 CFX_ByteStringC pCapUnits[] = {"Zero", "One", "Two", "Three", "Four", | 5169 CFX_ByteStringC pCapUnits[] = {"Zero", "One", "Two", "Three", "Four", |
| 5290 "Five", "Six", "Seven", "Eight", "Nine"}; | 5170 "Five", "Six", "Seven", "Eight", "Nine"}; |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5477 } break; | 5357 } break; |
| 5478 default: | 5358 default: |
| 5479 break; | 5359 break; |
| 5480 } | 5360 } |
| 5481 } | 5361 } |
| 5482 | 5362 |
| 5483 // static | 5363 // static |
| 5484 void CXFA_FM2JSContext::Get(CFXJSE_Value* pThis, | 5364 void CXFA_FM2JSContext::Get(CFXJSE_Value* pThis, |
| 5485 const CFX_ByteStringC& szFuncName, | 5365 const CFX_ByteStringC& szFuncName, |
| 5486 CFXJSE_Arguments& args) { | 5366 CFXJSE_Arguments& args) { |
| 5487 CXFA_FM2JSContext* pContext = | 5367 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 5488 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 5489 if (args.GetLength() == 1) { | 5368 if (args.GetLength() == 1) { |
| 5490 CXFA_Document* pDoc = pContext->GetDocument(); | 5369 CXFA_Document* pDoc = pContext->GetDocument(); |
| 5491 if (!pDoc) { | 5370 if (!pDoc) { |
| 5492 return; | 5371 return; |
| 5493 } | 5372 } |
| 5494 IXFA_AppProvider* pAppProvider = | 5373 IXFA_AppProvider* pAppProvider = |
| 5495 pDoc->GetParser()->GetNotify()->GetAppProvider(); | 5374 pDoc->GetParser()->GetNotify()->GetAppProvider(); |
| 5496 if (!pAppProvider) { | 5375 if (!pAppProvider) { |
| 5497 return; | 5376 return; |
| 5498 } | 5377 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 5513 } else { | 5392 } else { |
| 5514 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5393 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 5515 L"Get"); | 5394 L"Get"); |
| 5516 } | 5395 } |
| 5517 } | 5396 } |
| 5518 | 5397 |
| 5519 // static | 5398 // static |
| 5520 void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis, | 5399 void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis, |
| 5521 const CFX_ByteStringC& szFuncName, | 5400 const CFX_ByteStringC& szFuncName, |
| 5522 CFXJSE_Arguments& args) { | 5401 CFXJSE_Arguments& args) { |
| 5523 CXFA_FM2JSContext* pContext = | 5402 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 5524 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 5525 int32_t argc = args.GetLength(); | 5403 int32_t argc = args.GetLength(); |
| 5526 if ((argc >= 2) && (argc <= 5)) { | 5404 if ((argc >= 2) && (argc <= 5)) { |
| 5527 CXFA_Document* pDoc = pContext->GetDocument(); | 5405 CXFA_Document* pDoc = pContext->GetDocument(); |
| 5528 if (!pDoc) { | 5406 if (!pDoc) { |
| 5529 return; | 5407 return; |
| 5530 } | 5408 } |
| 5531 IXFA_AppProvider* pAppProvider = | 5409 IXFA_AppProvider* pAppProvider = |
| 5532 pDoc->GetParser()->GetNotify()->GetAppProvider(); | 5410 pDoc->GetParser()->GetNotify()->GetAppProvider(); |
| 5533 if (!pAppProvider) { | 5411 if (!pAppProvider) { |
| 5534 return; | 5412 return; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5572 } else { | 5450 } else { |
| 5573 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5451 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 5574 L"Post"); | 5452 L"Post"); |
| 5575 } | 5453 } |
| 5576 } | 5454 } |
| 5577 | 5455 |
| 5578 // static | 5456 // static |
| 5579 void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis, | 5457 void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis, |
| 5580 const CFX_ByteStringC& szFuncName, | 5458 const CFX_ByteStringC& szFuncName, |
| 5581 CFXJSE_Arguments& args) { | 5459 CFXJSE_Arguments& args) { |
| 5582 CXFA_FM2JSContext* pContext = | 5460 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 5583 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 5584 int32_t argc = args.GetLength(); | 5461 int32_t argc = args.GetLength(); |
| 5585 if ((argc == 2) || (argc == 3)) { | 5462 if ((argc == 2) || (argc == 3)) { |
| 5586 CXFA_Document* pDoc = pContext->GetDocument(); | 5463 CXFA_Document* pDoc = pContext->GetDocument(); |
| 5587 if (!pDoc) { | 5464 if (!pDoc) { |
| 5588 return; | 5465 return; |
| 5589 } | 5466 } |
| 5590 IXFA_AppProvider* pAppProvider = | 5467 IXFA_AppProvider* pAppProvider = |
| 5591 pDoc->GetParser()->GetNotify()->GetAppProvider(); | 5468 pDoc->GetParser()->GetNotify()->GetAppProvider(); |
| 5592 if (!pAppProvider) { | 5469 if (!pAppProvider) { |
| 5593 return; | 5470 return; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 5615 } else { | 5492 } else { |
| 5616 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 5493 pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
| 5617 L"Put"); | 5494 L"Put"); |
| 5618 } | 5495 } |
| 5619 } | 5496 } |
| 5620 | 5497 |
| 5621 // static | 5498 // static |
| 5622 void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis, | 5499 void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis, |
| 5623 const CFX_ByteStringC& szFuncName, | 5500 const CFX_ByteStringC& szFuncName, |
| 5624 CFXJSE_Arguments& args) { | 5501 CFXJSE_Arguments& args) { |
| 5625 CXFA_FM2JSContext* pContext = | 5502 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 5626 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 5627 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 5503 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 5628 if (args.GetLength() == 2) { | 5504 if (args.GetLength() == 2) { |
| 5629 std::unique_ptr<CFXJSE_Value> lValue = args.GetValue(0); | 5505 std::unique_ptr<CFXJSE_Value> lValue = args.GetValue(0); |
| 5630 std::unique_ptr<CFXJSE_Value> rValue = GetSimpleValue(pThis, args, 1); | 5506 std::unique_ptr<CFXJSE_Value> rValue = GetSimpleValue(pThis, args, 1); |
| 5631 FX_BOOL bSetStatus = TRUE; | 5507 FX_BOOL bSetStatus = TRUE; |
| 5632 if (FXJSE_Value_IsArray(lValue.get())) { | 5508 if (FXJSE_Value_IsArray(lValue.get())) { |
| 5633 std::unique_ptr<CFXJSE_Value> leftLengthValue(new CFXJSE_Value(pIsolate)); | 5509 std::unique_ptr<CFXJSE_Value> leftLengthValue(new CFXJSE_Value(pIsolate)); |
| 5634 FXJSE_Value_GetObjectProp(lValue.get(), "length", leftLengthValue.get()); | 5510 FXJSE_Value_GetObjectProp(lValue.get(), "length", leftLengthValue.get()); |
| 5635 int32_t iLeftLength = FXJSE_Value_ToInteger(leftLengthValue.get()); | 5511 int32_t iLeftLength = FXJSE_Value_ToInteger(leftLengthValue.get()); |
| 5636 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 5512 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5675 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5551 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5676 if (FXJSE_Value_IsNull(argFirst.get()) && | 5552 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5677 FXJSE_Value_IsNull(argSecond.get())) { | 5553 FXJSE_Value_IsNull(argSecond.get())) { |
| 5678 FXJSE_Value_SetNull(args.GetReturnValue()); | 5554 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5679 } else { | 5555 } else { |
| 5680 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); | 5556 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); |
| 5681 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); | 5557 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); |
| 5682 FXJSE_Value_SetInteger(args.GetReturnValue(), (first || second) ? 1 : 0); | 5558 FXJSE_Value_SetInteger(args.GetReturnValue(), (first || second) ? 1 : 0); |
| 5683 } | 5559 } |
| 5684 } else { | 5560 } else { |
| 5685 CXFA_FM2JSContext* pContext = | 5561 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5686 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5562 XFA_IDS_COMPILER_ERROR); |
| 5687 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5688 } | 5563 } |
| 5689 } | 5564 } |
| 5690 | 5565 |
| 5691 // static | 5566 // static |
| 5692 void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis, | 5567 void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis, |
| 5693 const CFX_ByteStringC& szFuncName, | 5568 const CFX_ByteStringC& szFuncName, |
| 5694 CFXJSE_Arguments& args) { | 5569 CFXJSE_Arguments& args) { |
| 5695 if (args.GetLength() == 2) { | 5570 if (args.GetLength() == 2) { |
| 5696 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5571 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5697 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5572 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5698 if (FXJSE_Value_IsNull(argFirst.get()) && | 5573 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5699 FXJSE_Value_IsNull(argSecond.get())) { | 5574 FXJSE_Value_IsNull(argSecond.get())) { |
| 5700 FXJSE_Value_SetNull(args.GetReturnValue()); | 5575 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5701 } else { | 5576 } else { |
| 5702 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); | 5577 FX_FLOAT first = ValueToFloat(pThis, argFirst.get()); |
| 5703 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); | 5578 FX_FLOAT second = ValueToFloat(pThis, argSecond.get()); |
| 5704 FXJSE_Value_SetInteger(args.GetReturnValue(), (first && second) ? 1 : 0); | 5579 FXJSE_Value_SetInteger(args.GetReturnValue(), (first && second) ? 1 : 0); |
| 5705 } | 5580 } |
| 5706 } else { | 5581 } else { |
| 5707 CXFA_FM2JSContext* pContext = | 5582 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5708 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5583 XFA_IDS_COMPILER_ERROR); |
| 5709 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5710 } | 5584 } |
| 5711 } | 5585 } |
| 5712 | 5586 |
| 5713 // static | 5587 // static |
| 5714 void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis, | 5588 void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis, |
| 5715 const CFX_ByteStringC& szFuncName, | 5589 const CFX_ByteStringC& szFuncName, |
| 5716 CFXJSE_Arguments& args) { | 5590 CFXJSE_Arguments& args) { |
| 5717 if (args.GetLength() == 2) { | 5591 if (args.GetLength() == 2) { |
| 5718 if (fm_ref_equal(pThis, args)) { | 5592 if (fm_ref_equal(pThis, args)) { |
| 5719 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); | 5593 FXJSE_Value_SetInteger(args.GetReturnValue(), 1); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 5736 FXJSE_Value_SetInteger(args.GetReturnValue(), | 5610 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 5737 firstOutput == secondOutput); | 5611 firstOutput == secondOutput); |
| 5738 } else { | 5612 } else { |
| 5739 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5613 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5740 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5614 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5741 FXJSE_Value_SetInteger(args.GetReturnValue(), | 5615 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 5742 (first == second) ? 1 : 0); | 5616 (first == second) ? 1 : 0); |
| 5743 } | 5617 } |
| 5744 } | 5618 } |
| 5745 } else { | 5619 } else { |
| 5746 CXFA_FM2JSContext* pContext = | 5620 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5747 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5621 XFA_IDS_COMPILER_ERROR); |
| 5748 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5749 } | 5622 } |
| 5750 } | 5623 } |
| 5751 | 5624 |
| 5752 // static | 5625 // static |
| 5753 void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis, | 5626 void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis, |
| 5754 const CFX_ByteStringC& szFuncName, | 5627 const CFX_ByteStringC& szFuncName, |
| 5755 CFXJSE_Arguments& args) { | 5628 CFXJSE_Arguments& args) { |
| 5756 if (args.GetLength() == 2) { | 5629 if (args.GetLength() == 2) { |
| 5757 if (fm_ref_equal(pThis, args)) { | 5630 if (fm_ref_equal(pThis, args)) { |
| 5758 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 5631 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 5774 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); | 5647 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); |
| 5775 FXJSE_Value_SetInteger(args.GetReturnValue(), | 5648 FXJSE_Value_SetInteger(args.GetReturnValue(), |
| 5776 firstOutput != secondOutput); | 5649 firstOutput != secondOutput); |
| 5777 } else { | 5650 } else { |
| 5778 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5651 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5779 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5652 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5780 FXJSE_Value_SetInteger(args.GetReturnValue(), first != second); | 5653 FXJSE_Value_SetInteger(args.GetReturnValue(), first != second); |
| 5781 } | 5654 } |
| 5782 } | 5655 } |
| 5783 } else { | 5656 } else { |
| 5784 CXFA_FM2JSContext* pContext = | 5657 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5785 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5658 XFA_IDS_COMPILER_ERROR); |
| 5786 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5787 } | 5659 } |
| 5788 } | 5660 } |
| 5789 | 5661 |
| 5790 // static | 5662 // static |
| 5791 FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis, | 5663 FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis, |
| 5792 CFXJSE_Arguments& args) { | 5664 CFXJSE_Arguments& args) { |
| 5793 FX_BOOL bRet = FALSE; | 5665 FX_BOOL bRet = FALSE; |
| 5794 CXFA_FM2JSContext* pContext = | 5666 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 5795 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 5796 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 5797 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); | 5667 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); |
| 5798 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); | 5668 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); |
| 5799 if (FXJSE_Value_IsArray(argFirst.get()) && | 5669 if (FXJSE_Value_IsArray(argFirst.get()) && |
| 5800 FXJSE_Value_IsArray(argSecond.get())) { | 5670 FXJSE_Value_IsArray(argSecond.get())) { |
| 5801 std::unique_ptr<CFXJSE_Value> firstFlagValue(new CFXJSE_Value(pIsolate)); | 5671 std::unique_ptr<CFXJSE_Value> firstFlagValue(new CFXJSE_Value(pIsolate)); |
| 5802 std::unique_ptr<CFXJSE_Value> secondFlagValue(new CFXJSE_Value(pIsolate)); | 5672 std::unique_ptr<CFXJSE_Value> secondFlagValue(new CFXJSE_Value(pIsolate)); |
| 5803 FXJSE_Value_GetObjectPropByIdx(argFirst.get(), 0, firstFlagValue.get()); | 5673 FXJSE_Value_GetObjectPropByIdx(argFirst.get(), 0, firstFlagValue.get()); |
| 5804 FXJSE_Value_GetObjectPropByIdx(argSecond.get(), 0, secondFlagValue.get()); | 5674 FXJSE_Value_GetObjectPropByIdx(argSecond.get(), 0, secondFlagValue.get()); |
| 5805 if ((FXJSE_Value_ToInteger(firstFlagValue.get()) == 3) && | 5675 if ((FXJSE_Value_ToInteger(firstFlagValue.get()) == 3) && |
| 5806 (FXJSE_Value_ToInteger(secondFlagValue.get()) == 3)) { | 5676 (FXJSE_Value_ToInteger(secondFlagValue.get()) == 3)) { |
| 5807 std::unique_ptr<CFXJSE_Value> firstJSObject(new CFXJSE_Value(pIsolate)); | 5677 std::unique_ptr<CFXJSE_Value> firstJSObject(new CFXJSE_Value(pIsolate)); |
| 5808 std::unique_ptr<CFXJSE_Value> secondJSObject(new CFXJSE_Value(pIsolate)); | 5678 std::unique_ptr<CFXJSE_Value> secondJSObject(new CFXJSE_Value(pIsolate)); |
| 5809 FXJSE_Value_GetObjectPropByIdx(argFirst.get(), 2, firstJSObject.get()); | 5679 FXJSE_Value_GetObjectPropByIdx(argFirst.get(), 2, firstJSObject.get()); |
| 5810 FXJSE_Value_GetObjectPropByIdx(argSecond.get(), 2, secondJSObject.get()); | 5680 FXJSE_Value_GetObjectPropByIdx(argSecond.get(), 2, secondJSObject.get()); |
| 5811 if (!FXJSE_Value_IsNull(firstJSObject.get()) && | 5681 if (!FXJSE_Value_IsNull(firstJSObject.get()) && |
| 5812 !FXJSE_Value_IsNull(secondJSObject.get())) { | 5682 !FXJSE_Value_IsNull(secondJSObject.get())) { |
| 5813 bRet = (FXJSE_Value_ToObject(firstJSObject.get(), nullptr) == | 5683 bRet = (firstJSObject.get()->ToHostObject(nullptr) == |
| 5814 FXJSE_Value_ToObject(secondJSObject.get(), nullptr)); | 5684 secondJSObject.get()->ToHostObject(nullptr)); |
| 5815 } | 5685 } |
| 5816 } | 5686 } |
| 5817 } | 5687 } |
| 5818 return bRet; | 5688 return bRet; |
| 5819 } | 5689 } |
| 5820 | 5690 |
| 5821 // static | 5691 // static |
| 5822 void CXFA_FM2JSContext::less_operator(CFXJSE_Value* pThis, | 5692 void CXFA_FM2JSContext::less_operator(CFXJSE_Value* pThis, |
| 5823 const CFX_ByteStringC& szFuncName, | 5693 const CFX_ByteStringC& szFuncName, |
| 5824 CFXJSE_Arguments& args) { | 5694 CFXJSE_Arguments& args) { |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 5836 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); | 5706 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); |
| 5837 FXJSE_Value_SetInteger( | 5707 FXJSE_Value_SetInteger( |
| 5838 args.GetReturnValue(), | 5708 args.GetReturnValue(), |
| 5839 firstOutput.Compare(secondOutput.AsStringC()) == -1); | 5709 firstOutput.Compare(secondOutput.AsStringC()) == -1); |
| 5840 } else { | 5710 } else { |
| 5841 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5711 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5842 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5712 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5843 FXJSE_Value_SetInteger(args.GetReturnValue(), (first < second) ? 1 : 0); | 5713 FXJSE_Value_SetInteger(args.GetReturnValue(), (first < second) ? 1 : 0); |
| 5844 } | 5714 } |
| 5845 } else { | 5715 } else { |
| 5846 CXFA_FM2JSContext* pContext = | 5716 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5847 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5717 XFA_IDS_COMPILER_ERROR); |
| 5848 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5849 } | 5718 } |
| 5850 } | 5719 } |
| 5851 | 5720 |
| 5852 // static | 5721 // static |
| 5853 void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis, | 5722 void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis, |
| 5854 const CFX_ByteStringC& szFuncName, | 5723 const CFX_ByteStringC& szFuncName, |
| 5855 CFXJSE_Arguments& args) { | 5724 CFXJSE_Arguments& args) { |
| 5856 if (args.GetLength() == 2) { | 5725 if (args.GetLength() == 2) { |
| 5857 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5726 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5858 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5727 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 5871 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); | 5740 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); |
| 5872 FXJSE_Value_SetInteger( | 5741 FXJSE_Value_SetInteger( |
| 5873 args.GetReturnValue(), | 5742 args.GetReturnValue(), |
| 5874 firstOutput.Compare(secondOutput.AsStringC()) != 1); | 5743 firstOutput.Compare(secondOutput.AsStringC()) != 1); |
| 5875 } else { | 5744 } else { |
| 5876 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5745 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5877 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5746 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5878 FXJSE_Value_SetInteger(args.GetReturnValue(), (first <= second) ? 1 : 0); | 5747 FXJSE_Value_SetInteger(args.GetReturnValue(), (first <= second) ? 1 : 0); |
| 5879 } | 5748 } |
| 5880 } else { | 5749 } else { |
| 5881 CXFA_FM2JSContext* pContext = | 5750 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5882 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5751 XFA_IDS_COMPILER_ERROR); |
| 5883 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5884 } | 5752 } |
| 5885 } | 5753 } |
| 5886 | 5754 |
| 5887 // static | 5755 // static |
| 5888 void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis, | 5756 void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis, |
| 5889 const CFX_ByteStringC& szFuncName, | 5757 const CFX_ByteStringC& szFuncName, |
| 5890 CFXJSE_Arguments& args) { | 5758 CFXJSE_Arguments& args) { |
| 5891 if (args.GetLength() == 2) { | 5759 if (args.GetLength() == 2) { |
| 5892 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5760 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5893 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5761 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5894 if (FXJSE_Value_IsNull(argFirst.get()) || | 5762 if (FXJSE_Value_IsNull(argFirst.get()) || |
| 5895 FXJSE_Value_IsNull(argSecond.get())) { | 5763 FXJSE_Value_IsNull(argSecond.get())) { |
| 5896 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); | 5764 FXJSE_Value_SetInteger(args.GetReturnValue(), 0); |
| 5897 } else if (FXJSE_Value_IsUTF8String(argFirst.get()) && | 5765 } else if (FXJSE_Value_IsUTF8String(argFirst.get()) && |
| 5898 FXJSE_Value_IsUTF8String(argSecond.get())) { | 5766 FXJSE_Value_IsUTF8String(argSecond.get())) { |
| 5899 CFX_ByteString firstOutput; | 5767 CFX_ByteString firstOutput; |
| 5900 CFX_ByteString secondOutput; | 5768 CFX_ByteString secondOutput; |
| 5901 FXJSE_Value_ToUTF8String(argFirst.get(), firstOutput); | 5769 FXJSE_Value_ToUTF8String(argFirst.get(), firstOutput); |
| 5902 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); | 5770 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); |
| 5903 FXJSE_Value_SetInteger( | 5771 FXJSE_Value_SetInteger( |
| 5904 args.GetReturnValue(), | 5772 args.GetReturnValue(), |
| 5905 firstOutput.Compare(secondOutput.AsStringC()) == 1); | 5773 firstOutput.Compare(secondOutput.AsStringC()) == 1); |
| 5906 } else { | 5774 } else { |
| 5907 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5775 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5908 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5776 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5909 FXJSE_Value_SetInteger(args.GetReturnValue(), (first > second) ? 1 : 0); | 5777 FXJSE_Value_SetInteger(args.GetReturnValue(), (first > second) ? 1 : 0); |
| 5910 } | 5778 } |
| 5911 } else { | 5779 } else { |
| 5912 CXFA_FM2JSContext* pContext = | 5780 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5913 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5781 XFA_IDS_COMPILER_ERROR); |
| 5914 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5915 } | 5782 } |
| 5916 } | 5783 } |
| 5917 | 5784 |
| 5918 // static | 5785 // static |
| 5919 void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis, | 5786 void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis, |
| 5920 const CFX_ByteStringC& szFuncName, | 5787 const CFX_ByteStringC& szFuncName, |
| 5921 CFXJSE_Arguments& args) { | 5788 CFXJSE_Arguments& args) { |
| 5922 if (args.GetLength() == 2) { | 5789 if (args.GetLength() == 2) { |
| 5923 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5790 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5924 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5791 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 5937 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); | 5804 FXJSE_Value_ToUTF8String(argSecond.get(), secondOutput); |
| 5938 FXJSE_Value_SetInteger( | 5805 FXJSE_Value_SetInteger( |
| 5939 args.GetReturnValue(), | 5806 args.GetReturnValue(), |
| 5940 firstOutput.Compare(secondOutput.AsStringC()) != -1); | 5807 firstOutput.Compare(secondOutput.AsStringC()) != -1); |
| 5941 } else { | 5808 } else { |
| 5942 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5809 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5943 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5810 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5944 FXJSE_Value_SetInteger(args.GetReturnValue(), (first >= second) ? 1 : 0); | 5811 FXJSE_Value_SetInteger(args.GetReturnValue(), (first >= second) ? 1 : 0); |
| 5945 } | 5812 } |
| 5946 } else { | 5813 } else { |
| 5947 CXFA_FM2JSContext* pContext = | 5814 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5948 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5815 XFA_IDS_COMPILER_ERROR); |
| 5949 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5950 } | 5816 } |
| 5951 } | 5817 } |
| 5952 | 5818 |
| 5953 // static | 5819 // static |
| 5954 void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis, | 5820 void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis, |
| 5955 const CFX_ByteStringC& szFuncName, | 5821 const CFX_ByteStringC& szFuncName, |
| 5956 CFXJSE_Arguments& args) { | 5822 CFXJSE_Arguments& args) { |
| 5957 if (args.GetLength() == 2) { | 5823 if (args.GetLength() == 2) { |
| 5958 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); | 5824 std::unique_ptr<CFXJSE_Value> argFirst = args.GetValue(0); |
| 5959 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); | 5825 std::unique_ptr<CFXJSE_Value> argSecond = args.GetValue(1); |
| 5960 if (ValueIsNull(pThis, argFirst.get()) && | 5826 if (ValueIsNull(pThis, argFirst.get()) && |
| 5961 ValueIsNull(pThis, argSecond.get())) { | 5827 ValueIsNull(pThis, argSecond.get())) { |
| 5962 FXJSE_Value_SetNull(args.GetReturnValue()); | 5828 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5963 } else { | 5829 } else { |
| 5964 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5830 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5965 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5831 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5966 FXJSE_Value_SetDouble(args.GetReturnValue(), first + second); | 5832 FXJSE_Value_SetDouble(args.GetReturnValue(), first + second); |
| 5967 } | 5833 } |
| 5968 } else { | 5834 } else { |
| 5969 CXFA_FM2JSContext* pContext = | 5835 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5970 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5836 XFA_IDS_COMPILER_ERROR); |
| 5971 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5972 } | 5837 } |
| 5973 } | 5838 } |
| 5974 | 5839 |
| 5975 // static | 5840 // static |
| 5976 void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis, | 5841 void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis, |
| 5977 const CFX_ByteStringC& szFuncName, | 5842 const CFX_ByteStringC& szFuncName, |
| 5978 CFXJSE_Arguments& args) { | 5843 CFXJSE_Arguments& args) { |
| 5979 if (args.GetLength() == 2) { | 5844 if (args.GetLength() == 2) { |
| 5980 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5845 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 5981 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5846 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 5982 if (FXJSE_Value_IsNull(argFirst.get()) && | 5847 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 5983 FXJSE_Value_IsNull(argSecond.get())) { | 5848 FXJSE_Value_IsNull(argSecond.get())) { |
| 5984 FXJSE_Value_SetNull(args.GetReturnValue()); | 5849 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 5985 } else { | 5850 } else { |
| 5986 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5851 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 5987 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5852 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 5988 FXJSE_Value_SetDouble(args.GetReturnValue(), first - second); | 5853 FXJSE_Value_SetDouble(args.GetReturnValue(), first - second); |
| 5989 } | 5854 } |
| 5990 } else { | 5855 } else { |
| 5991 CXFA_FM2JSContext* pContext = | 5856 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 5992 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5857 XFA_IDS_COMPILER_ERROR); |
| 5993 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 5994 } | 5858 } |
| 5995 } | 5859 } |
| 5996 | 5860 |
| 5997 // static | 5861 // static |
| 5998 void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis, | 5862 void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis, |
| 5999 const CFX_ByteStringC& szFuncName, | 5863 const CFX_ByteStringC& szFuncName, |
| 6000 CFXJSE_Arguments& args) { | 5864 CFXJSE_Arguments& args) { |
| 6001 if (args.GetLength() == 2) { | 5865 if (args.GetLength() == 2) { |
| 6002 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5866 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 6003 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5867 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 6004 if (FXJSE_Value_IsNull(argFirst.get()) && | 5868 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 6005 FXJSE_Value_IsNull(argSecond.get())) { | 5869 FXJSE_Value_IsNull(argSecond.get())) { |
| 6006 FXJSE_Value_SetNull(args.GetReturnValue()); | 5870 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 6007 } else { | 5871 } else { |
| 6008 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5872 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 6009 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5873 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 6010 FXJSE_Value_SetDouble(args.GetReturnValue(), first * second); | 5874 FXJSE_Value_SetDouble(args.GetReturnValue(), first * second); |
| 6011 } | 5875 } |
| 6012 } else { | 5876 } else { |
| 6013 CXFA_FM2JSContext* pContext = | 5877 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 6014 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5878 XFA_IDS_COMPILER_ERROR); |
| 6015 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 6016 } | 5879 } |
| 6017 } | 5880 } |
| 6018 | 5881 |
| 6019 // static | 5882 // static |
| 6020 void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis, | 5883 void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis, |
| 6021 const CFX_ByteStringC& szFuncName, | 5884 const CFX_ByteStringC& szFuncName, |
| 6022 CFXJSE_Arguments& args) { | 5885 CFXJSE_Arguments& args) { |
| 6023 CXFA_FM2JSContext* pContext = | 5886 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6024 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6025 if (args.GetLength() == 2) { | 5887 if (args.GetLength() == 2) { |
| 6026 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); | 5888 std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, args, 0); |
| 6027 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); | 5889 std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, args, 1); |
| 6028 if (FXJSE_Value_IsNull(argFirst.get()) && | 5890 if (FXJSE_Value_IsNull(argFirst.get()) && |
| 6029 FXJSE_Value_IsNull(argSecond.get())) { | 5891 FXJSE_Value_IsNull(argSecond.get())) { |
| 6030 FXJSE_Value_SetNull(args.GetReturnValue()); | 5892 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 6031 } else { | 5893 } else { |
| 6032 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); | 5894 FX_DOUBLE first = ValueToDouble(pThis, argFirst.get()); |
| 6033 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); | 5895 FX_DOUBLE second = ValueToDouble(pThis, argSecond.get()); |
| 6034 if (second == 0.0) { | 5896 if (second == 0.0) { |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 6048 CFXJSE_Arguments& args) { | 5910 CFXJSE_Arguments& args) { |
| 6049 if (args.GetLength() == 1) { | 5911 if (args.GetLength() == 1) { |
| 6050 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5912 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 6051 if (FXJSE_Value_IsNull(argOne.get())) { | 5913 if (FXJSE_Value_IsNull(argOne.get())) { |
| 6052 FXJSE_Value_SetNull(args.GetReturnValue()); | 5914 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 6053 } else { | 5915 } else { |
| 6054 FXJSE_Value_SetDouble(args.GetReturnValue(), | 5916 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 6055 0.0 + ValueToDouble(pThis, argOne.get())); | 5917 0.0 + ValueToDouble(pThis, argOne.get())); |
| 6056 } | 5918 } |
| 6057 } else { | 5919 } else { |
| 6058 CXFA_FM2JSContext* pContext = | 5920 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 6059 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5921 XFA_IDS_COMPILER_ERROR); |
| 6060 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 6061 } | 5922 } |
| 6062 } | 5923 } |
| 6063 | 5924 |
| 6064 // static | 5925 // static |
| 6065 void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis, | 5926 void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis, |
| 6066 const CFX_ByteStringC& szFuncName, | 5927 const CFX_ByteStringC& szFuncName, |
| 6067 CFXJSE_Arguments& args) { | 5928 CFXJSE_Arguments& args) { |
| 6068 if (args.GetLength() == 1) { | 5929 if (args.GetLength() == 1) { |
| 6069 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5930 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 6070 if (FXJSE_Value_IsNull(argOne.get())) { | 5931 if (FXJSE_Value_IsNull(argOne.get())) { |
| 6071 FXJSE_Value_SetNull(args.GetReturnValue()); | 5932 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 6072 } else { | 5933 } else { |
| 6073 FXJSE_Value_SetDouble(args.GetReturnValue(), | 5934 FXJSE_Value_SetDouble(args.GetReturnValue(), |
| 6074 0.0 - ValueToDouble(pThis, argOne.get())); | 5935 0.0 - ValueToDouble(pThis, argOne.get())); |
| 6075 } | 5936 } |
| 6076 } else { | 5937 } else { |
| 6077 CXFA_FM2JSContext* pContext = | 5938 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 6078 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5939 XFA_IDS_COMPILER_ERROR); |
| 6079 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 6080 } | 5940 } |
| 6081 } | 5941 } |
| 6082 | 5942 |
| 6083 // static | 5943 // static |
| 6084 void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis, | 5944 void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis, |
| 6085 const CFX_ByteStringC& szFuncName, | 5945 const CFX_ByteStringC& szFuncName, |
| 6086 CFXJSE_Arguments& args) { | 5946 CFXJSE_Arguments& args) { |
| 6087 if (args.GetLength() == 1) { | 5947 if (args.GetLength() == 1) { |
| 6088 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 5948 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 6089 if (FXJSE_Value_IsNull(argOne.get())) { | 5949 if (FXJSE_Value_IsNull(argOne.get())) { |
| 6090 FXJSE_Value_SetNull(args.GetReturnValue()); | 5950 FXJSE_Value_SetNull(args.GetReturnValue()); |
| 6091 } else { | 5951 } else { |
| 6092 FX_DOUBLE first = ValueToDouble(pThis, argOne.get()); | 5952 FX_DOUBLE first = ValueToDouble(pThis, argOne.get()); |
| 6093 FXJSE_Value_SetInteger(args.GetReturnValue(), (first == 0.0) ? 1 : 0); | 5953 FXJSE_Value_SetInteger(args.GetReturnValue(), (first == 0.0) ? 1 : 0); |
| 6094 } | 5954 } |
| 6095 } else { | 5955 } else { |
| 6096 CXFA_FM2JSContext* pContext = | 5956 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 6097 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 5957 XFA_IDS_COMPILER_ERROR); |
| 6098 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 6099 } | 5958 } |
| 6100 } | 5959 } |
| 6101 | 5960 |
| 6102 // static | 5961 // static |
| 6103 void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis, | 5962 void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis, |
| 6104 const CFX_ByteStringC& szFuncName, | 5963 const CFX_ByteStringC& szFuncName, |
| 6105 CFXJSE_Arguments& args) { | 5964 CFXJSE_Arguments& args) { |
| 6106 CXFA_FM2JSContext* pContext = | 5965 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6107 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6108 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 5966 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6109 int32_t argc = args.GetLength(); | 5967 int32_t argc = args.GetLength(); |
| 6110 if ((argc == 4) || (argc == 5)) { | 5968 if ((argc == 4) || (argc == 5)) { |
| 6111 FX_BOOL bIsStar = TRUE; | 5969 FX_BOOL bIsStar = TRUE; |
| 6112 std::unique_ptr<CFXJSE_Value> argAccessor = args.GetValue(0); | 5970 std::unique_ptr<CFXJSE_Value> argAccessor = args.GetValue(0); |
| 6113 CFX_ByteString bsAccessorName = args.GetUTF8String(1); | 5971 CFX_ByteString bsAccessorName = args.GetUTF8String(1); |
| 6114 CFX_ByteString szName = args.GetUTF8String(2); | 5972 CFX_ByteString szName = args.GetUTF8String(2); |
| 6115 int32_t iIndexFlags = args.GetInt32(3); | 5973 int32_t iIndexFlags = args.GetInt32(3); |
| 6116 int32_t iIndexValue = 0; | 5974 int32_t iIndexValue = 0; |
| 6117 if (argc == 5) { | 5975 if (argc == 5) { |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6245 } | 6103 } |
| 6246 } else { | 6104 } else { |
| 6247 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6105 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); |
| 6248 } | 6106 } |
| 6249 } | 6107 } |
| 6250 | 6108 |
| 6251 // static | 6109 // static |
| 6252 void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis, | 6110 void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis, |
| 6253 const CFX_ByteStringC& szFuncName, | 6111 const CFX_ByteStringC& szFuncName, |
| 6254 CFXJSE_Arguments& args) { | 6112 CFXJSE_Arguments& args) { |
| 6255 CXFA_FM2JSContext* pContext = | 6113 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6256 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6257 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6114 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6258 int32_t argc = args.GetLength(); | 6115 int32_t argc = args.GetLength(); |
| 6259 if ((argc == 4) || (argc == 5)) { | 6116 if ((argc == 4) || (argc == 5)) { |
| 6260 FX_BOOL bIsStar = TRUE; | 6117 FX_BOOL bIsStar = TRUE; |
| 6261 std::unique_ptr<CFXJSE_Value> argAccessor = args.GetValue(0); | 6118 std::unique_ptr<CFXJSE_Value> argAccessor = args.GetValue(0); |
| 6262 CFX_ByteString bsAccessorName = args.GetUTF8String(1); | 6119 CFX_ByteString bsAccessorName = args.GetUTF8String(1); |
| 6263 CFX_ByteString szName = args.GetUTF8String(2); | 6120 CFX_ByteString szName = args.GetUTF8String(2); |
| 6264 int32_t iIndexFlags = args.GetInt32(3); | 6121 int32_t iIndexFlags = args.GetInt32(3); |
| 6265 int32_t iIndexValue = 0; | 6122 int32_t iIndexValue = 0; |
| 6266 if (argc == 5) { | 6123 if (argc == 5) { |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6389 } | 6246 } |
| 6390 } else { | 6247 } else { |
| 6391 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6248 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); |
| 6392 } | 6249 } |
| 6393 } | 6250 } |
| 6394 | 6251 |
| 6395 // static | 6252 // static |
| 6396 void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis, | 6253 void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis, |
| 6397 const CFX_ByteStringC& szFuncName, | 6254 const CFX_ByteStringC& szFuncName, |
| 6398 CFXJSE_Arguments& args) { | 6255 CFXJSE_Arguments& args) { |
| 6399 CXFA_FM2JSContext* pContext = | 6256 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6400 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6401 if (args.GetLength() == 1) { | 6257 if (args.GetLength() == 1) { |
| 6402 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); | 6258 std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0); |
| 6403 CFX_ByteString argString; | 6259 CFX_ByteString argString; |
| 6404 ValueToUTF8String(argOne.get(), argString); | 6260 ValueToUTF8String(argOne.get(), argString); |
| 6405 if (argString.IsEmpty()) { | 6261 if (argString.IsEmpty()) { |
| 6406 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); | 6262 pContext->ThrowScriptErrorMessage(XFA_IDS_ARGUMENT_MISMATCH); |
| 6407 } else { | 6263 } else { |
| 6408 CFX_WideString scriptString = | 6264 CFX_WideString scriptString = |
| 6409 CFX_WideString::FromUTF8(argString.AsStringC()); | 6265 CFX_WideString::FromUTF8(argString.AsStringC()); |
| 6410 CFX_WideTextBuf wsJavaScriptBuf; | 6266 CFX_WideTextBuf wsJavaScriptBuf; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6450 FXJSE_Value_SetBoolean(args.GetReturnValue(), bIsArray); | 6306 FXJSE_Value_SetBoolean(args.GetReturnValue(), bIsArray); |
| 6451 } else { | 6307 } else { |
| 6452 FXJSE_Value_SetBoolean(args.GetReturnValue(), FALSE); | 6308 FXJSE_Value_SetBoolean(args.GetReturnValue(), FALSE); |
| 6453 } | 6309 } |
| 6454 } | 6310 } |
| 6455 | 6311 |
| 6456 // static | 6312 // static |
| 6457 void CXFA_FM2JSContext::get_fm_value(CFXJSE_Value* pThis, | 6313 void CXFA_FM2JSContext::get_fm_value(CFXJSE_Value* pThis, |
| 6458 const CFX_ByteStringC& szFuncName, | 6314 const CFX_ByteStringC& szFuncName, |
| 6459 CFXJSE_Arguments& args) { | 6315 CFXJSE_Arguments& args) { |
| 6460 CXFA_FM2JSContext* pContext = | 6316 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6461 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6462 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6317 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6463 if (args.GetLength() == 1) { | 6318 if (args.GetLength() == 1) { |
| 6464 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 6319 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 6465 if (FXJSE_Value_IsArray(argOne.get())) { | 6320 if (FXJSE_Value_IsArray(argOne.get())) { |
| 6466 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6321 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 6467 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6322 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 6468 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 1, propertyValue.get()); | 6323 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 1, propertyValue.get()); |
| 6469 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, jsObjectValue.get()); | 6324 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, jsObjectValue.get()); |
| 6470 if (FXJSE_Value_IsNull(propertyValue.get())) { | 6325 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 6471 GetObjectDefaultValue(jsObjectValue.get(), args.GetReturnValue()); | 6326 GetObjectDefaultValue(jsObjectValue.get(), args.GetReturnValue()); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 6486 } | 6341 } |
| 6487 | 6342 |
| 6488 // static | 6343 // static |
| 6489 void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis, | 6344 void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis, |
| 6490 const CFX_ByteStringC& szFuncName, | 6345 const CFX_ByteStringC& szFuncName, |
| 6491 CFXJSE_Arguments& args) { | 6346 CFXJSE_Arguments& args) { |
| 6492 if (args.GetLength() == 1) { | 6347 if (args.GetLength() == 1) { |
| 6493 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 6348 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 6494 if (FXJSE_Value_IsArray(argOne.get())) { | 6349 if (FXJSE_Value_IsArray(argOne.get())) { |
| 6495 #ifndef NDEBUG | 6350 #ifndef NDEBUG |
| 6496 CXFA_FM2JSContext* pContext = | 6351 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6497 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6498 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6499 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6352 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6500 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); | 6353 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); |
| 6501 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); | 6354 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); |
| 6502 #endif | 6355 #endif |
| 6503 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, args.GetReturnValue()); | 6356 FXJSE_Value_GetObjectPropByIdx(argOne.get(), 2, args.GetReturnValue()); |
| 6504 } else { | 6357 } else { |
| 6505 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); | 6358 FXJSE_Value_Set(args.GetReturnValue(), argOne.get()); |
| 6506 } | 6359 } |
| 6507 } else { | 6360 } else { |
| 6508 CXFA_FM2JSContext* pContext = | 6361 pThis->ToJSContext(nullptr)->ThrowScriptErrorMessage( |
| 6509 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | 6362 XFA_IDS_COMPILER_ERROR); |
| 6510 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | |
| 6511 } | 6363 } |
| 6512 } | 6364 } |
| 6513 | 6365 |
| 6514 // static | 6366 // static |
| 6515 void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis, | 6367 void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis, |
| 6516 const CFX_ByteStringC& szFuncName, | 6368 const CFX_ByteStringC& szFuncName, |
| 6517 CFXJSE_Arguments& args) { | 6369 CFXJSE_Arguments& args) { |
| 6518 CXFA_FM2JSContext* pContext = | 6370 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6519 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6520 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6371 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6521 if (args.GetLength() == 1) { | 6372 if (args.GetLength() == 1) { |
| 6522 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); | 6373 std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0); |
| 6523 if (FXJSE_Value_IsArray(argOne.get())) { | 6374 if (FXJSE_Value_IsArray(argOne.get())) { |
| 6524 #ifndef NDEBUG | 6375 #ifndef NDEBUG |
| 6525 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6376 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6526 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); | 6377 FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get()); |
| 6527 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); | 6378 ASSERT(FXJSE_Value_ToInteger(lengthValue.get()) >= 3); |
| 6528 #endif | 6379 #endif |
| 6529 std::unique_ptr<CFXJSE_Value> flagsValue(new CFXJSE_Value(pIsolate)); | 6380 std::unique_ptr<CFXJSE_Value> flagsValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 6560 } | 6411 } |
| 6561 } else { | 6412 } else { |
| 6562 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); | 6413 pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR); |
| 6563 } | 6414 } |
| 6564 } | 6415 } |
| 6565 | 6416 |
| 6566 // static | 6417 // static |
| 6567 void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis, | 6418 void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis, |
| 6568 const CFX_ByteStringC& szFuncName, | 6419 const CFX_ByteStringC& szFuncName, |
| 6569 CFXJSE_Arguments& args) { | 6420 CFXJSE_Arguments& args) { |
| 6570 CXFA_FM2JSContext* pContext = | 6421 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6571 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6572 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6573 uint32_t iLength = 0; | 6422 uint32_t iLength = 0; |
| 6574 int32_t argc = args.GetLength(); | 6423 int32_t argc = args.GetLength(); |
| 6575 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; | 6424 std::vector<std::unique_ptr<CFXJSE_Value>> argValues; |
| 6576 for (int32_t i = 0; i < argc; i++) { | 6425 for (int32_t i = 0; i < argc; i++) { |
| 6577 argValues.push_back(args.GetValue(i)); | 6426 argValues.push_back(args.GetValue(i)); |
| 6578 if (FXJSE_Value_IsArray(argValues[i].get())) { | 6427 if (FXJSE_Value_IsArray(argValues[i].get())) { |
| 6579 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6428 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6580 FXJSE_Value_GetObjectProp(argValues[i].get(), "length", | 6429 FXJSE_Value_GetObjectProp(argValues[i].get(), "length", |
| 6581 lengthValue.get()); | 6430 lengthValue.get()); |
| 6582 int32_t length = FXJSE_Value_ToInteger(lengthValue.get()); | 6431 int32_t length = FXJSE_Value_ToInteger(lengthValue.get()); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 6609 delete returnValues[i]; | 6458 delete returnValues[i]; |
| 6610 | 6459 |
| 6611 FX_Free(returnValues); | 6460 FX_Free(returnValues); |
| 6612 } | 6461 } |
| 6613 | 6462 |
| 6614 // static | 6463 // static |
| 6615 std::unique_ptr<CFXJSE_Value> CXFA_FM2JSContext::GetSimpleValue( | 6464 std::unique_ptr<CFXJSE_Value> CXFA_FM2JSContext::GetSimpleValue( |
| 6616 CFXJSE_Value* pThis, | 6465 CFXJSE_Value* pThis, |
| 6617 CFXJSE_Arguments& args, | 6466 CFXJSE_Arguments& args, |
| 6618 uint32_t index) { | 6467 uint32_t index) { |
| 6619 CXFA_FM2JSContext* pContext = | 6468 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6620 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6621 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6622 ASSERT(index < (uint32_t)args.GetLength()); | 6469 ASSERT(index < (uint32_t)args.GetLength()); |
| 6623 std::unique_ptr<CFXJSE_Value> argIndex = args.GetValue(index); | 6470 std::unique_ptr<CFXJSE_Value> argIndex = args.GetValue(index); |
| 6624 if (FXJSE_Value_IsArray(argIndex.get())) { | 6471 if (FXJSE_Value_IsArray(argIndex.get())) { |
| 6625 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6472 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6626 FXJSE_Value_GetObjectProp(argIndex.get(), "length", lengthValue.get()); | 6473 FXJSE_Value_GetObjectProp(argIndex.get(), "length", lengthValue.get()); |
| 6627 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 6474 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 6628 std::unique_ptr<CFXJSE_Value> simpleValue(new CFXJSE_Value(pIsolate)); | 6475 std::unique_ptr<CFXJSE_Value> simpleValue(new CFXJSE_Value(pIsolate)); |
| 6629 if (iLength > 2) { | 6476 if (iLength > 2) { |
| 6630 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6477 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 6631 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6478 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 6647 std::unique_ptr<CFXJSE_Value> defaultValue(new CFXJSE_Value(pIsolate)); | 6494 std::unique_ptr<CFXJSE_Value> defaultValue(new CFXJSE_Value(pIsolate)); |
| 6648 GetObjectDefaultValue(argIndex.get(), defaultValue.get()); | 6495 GetObjectDefaultValue(argIndex.get(), defaultValue.get()); |
| 6649 return defaultValue; | 6496 return defaultValue; |
| 6650 } else { | 6497 } else { |
| 6651 return argIndex; | 6498 return argIndex; |
| 6652 } | 6499 } |
| 6653 } | 6500 } |
| 6654 | 6501 |
| 6655 // static | 6502 // static |
| 6656 FX_BOOL CXFA_FM2JSContext::ValueIsNull(CFXJSE_Value* pThis, CFXJSE_Value* arg) { | 6503 FX_BOOL CXFA_FM2JSContext::ValueIsNull(CFXJSE_Value* pThis, CFXJSE_Value* arg) { |
| 6657 CXFA_FM2JSContext* pContext = | 6504 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6658 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6659 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6660 FX_BOOL isNull = FALSE; | 6505 FX_BOOL isNull = FALSE; |
| 6661 if (FXJSE_Value_IsNull(arg)) { | 6506 if (FXJSE_Value_IsNull(arg)) { |
| 6662 isNull = TRUE; | 6507 isNull = TRUE; |
| 6663 } else if (FXJSE_Value_IsArray(arg)) { | 6508 } else if (FXJSE_Value_IsArray(arg)) { |
| 6664 int32_t iLength = hvalue_get_array_length(pThis, arg); | 6509 int32_t iLength = hvalue_get_array_length(pThis, arg); |
| 6665 if (iLength > 2) { | 6510 if (iLength > 2) { |
| 6666 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6511 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 6667 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6512 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 6668 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); | 6513 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); |
| 6669 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); | 6514 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 6693 if (FXJSE_Value_IsNull(defaultValue.get())) { | 6538 if (FXJSE_Value_IsNull(defaultValue.get())) { |
| 6694 isNull = TRUE; | 6539 isNull = TRUE; |
| 6695 } | 6540 } |
| 6696 } | 6541 } |
| 6697 return isNull; | 6542 return isNull; |
| 6698 } | 6543 } |
| 6699 | 6544 |
| 6700 // static | 6545 // static |
| 6701 int32_t CXFA_FM2JSContext::hvalue_get_array_length(CFXJSE_Value* pThis, | 6546 int32_t CXFA_FM2JSContext::hvalue_get_array_length(CFXJSE_Value* pThis, |
| 6702 CFXJSE_Value* arg) { | 6547 CFXJSE_Value* arg) { |
| 6703 CXFA_FM2JSContext* pContext = | 6548 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6704 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6705 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6706 int32_t iLength = 0; | 6549 int32_t iLength = 0; |
| 6707 if (FXJSE_Value_IsArray(arg)) { | 6550 if (FXJSE_Value_IsArray(arg)) { |
| 6708 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6551 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6709 FXJSE_Value_GetObjectProp(arg, "length", lengthValue.get()); | 6552 FXJSE_Value_GetObjectProp(arg, "length", lengthValue.get()); |
| 6710 iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 6553 iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| 6711 } | 6554 } |
| 6712 return iLength; | 6555 return iLength; |
| 6713 } | 6556 } |
| 6714 | 6557 |
| 6715 // static | 6558 // static |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 6735 } | 6578 } |
| 6736 return bReturn; | 6579 return bReturn; |
| 6737 } | 6580 } |
| 6738 | 6581 |
| 6739 // static | 6582 // static |
| 6740 void CXFA_FM2JSContext::unfoldArgs(CFXJSE_Value* pThis, | 6583 void CXFA_FM2JSContext::unfoldArgs(CFXJSE_Value* pThis, |
| 6741 CFXJSE_Arguments& args, | 6584 CFXJSE_Arguments& args, |
| 6742 CFXJSE_Value**& resultValues, | 6585 CFXJSE_Value**& resultValues, |
| 6743 int32_t& iCount, | 6586 int32_t& iCount, |
| 6744 int32_t iStart) { | 6587 int32_t iStart) { |
| 6745 CXFA_FM2JSContext* pContext = | 6588 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6746 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6747 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6748 iCount = 0; | 6589 iCount = 0; |
| 6749 int32_t argc = args.GetLength(); | 6590 int32_t argc = args.GetLength(); |
| 6750 std::vector<std::unique_ptr<CFXJSE_Value>> argsValue; | 6591 std::vector<std::unique_ptr<CFXJSE_Value>> argsValue; |
| 6751 for (int32_t i = 0; i < argc - iStart; i++) { | 6592 for (int32_t i = 0; i < argc - iStart; i++) { |
| 6752 argsValue.push_back(args.GetValue(i + iStart)); | 6593 argsValue.push_back(args.GetValue(i + iStart)); |
| 6753 if (FXJSE_Value_IsArray(argsValue[i].get())) { | 6594 if (FXJSE_Value_IsArray(argsValue[i].get())) { |
| 6754 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); | 6595 std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate)); |
| 6755 FXJSE_Value_GetObjectProp(argsValue[i].get(), "length", | 6596 FXJSE_Value_GetObjectProp(argsValue[i].get(), "length", |
| 6756 lengthValue.get()); | 6597 lengthValue.get()); |
| 6757 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); | 6598 int32_t iLength = FXJSE_Value_ToInteger(lengthValue.get()); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6802 } else { | 6643 } else { |
| 6803 FXJSE_Value_Set(resultValues[index], argsValue[i].get()); | 6644 FXJSE_Value_Set(resultValues[index], argsValue[i].get()); |
| 6804 index++; | 6645 index++; |
| 6805 } | 6646 } |
| 6806 } | 6647 } |
| 6807 } | 6648 } |
| 6808 | 6649 |
| 6809 // static | 6650 // static |
| 6810 void CXFA_FM2JSContext::GetObjectDefaultValue(CFXJSE_Value* pObjectValue, | 6651 void CXFA_FM2JSContext::GetObjectDefaultValue(CFXJSE_Value* pObjectValue, |
| 6811 CFXJSE_Value* pDefaultValue) { | 6652 CFXJSE_Value* pDefaultValue) { |
| 6812 CXFA_Node* pNode = | 6653 CXFA_Node* pNode = ToNode(pObjectValue->ToObject(nullptr)); |
| 6813 ToNode((CXFA_Object*)FXJSE_Value_ToObject(pObjectValue, nullptr)); | |
| 6814 if (pNode) { | 6654 if (pNode) { |
| 6815 pNode->Script_Som_DefaultValue(pDefaultValue, FALSE, (XFA_ATTRIBUTE)-1); | 6655 pNode->Script_Som_DefaultValue(pDefaultValue, FALSE, (XFA_ATTRIBUTE)-1); |
| 6816 } else { | 6656 } else { |
| 6817 FXJSE_Value_SetNull(pDefaultValue); | 6657 FXJSE_Value_SetNull(pDefaultValue); |
| 6818 } | 6658 } |
| 6819 } | 6659 } |
| 6820 | 6660 |
| 6821 // static | 6661 // static |
| 6822 FX_BOOL CXFA_FM2JSContext::SetObjectDefaultValue(CFXJSE_Value* pObjectValue, | 6662 FX_BOOL CXFA_FM2JSContext::SetObjectDefaultValue(CFXJSE_Value* pObjectValue, |
| 6823 CFXJSE_Value* hNewValue) { | 6663 CFXJSE_Value* hNewValue) { |
| 6824 CXFA_Node* pNode = | 6664 CXFA_Node* pNode = ToNode(pObjectValue->ToObject(nullptr)); |
| 6825 ToNode((CXFA_Object*)FXJSE_Value_ToObject(pObjectValue, nullptr)); | |
| 6826 if (pNode) { | 6665 if (pNode) { |
| 6827 pNode->Script_Som_DefaultValue(hNewValue, TRUE, (XFA_ATTRIBUTE)-1); | 6666 pNode->Script_Som_DefaultValue(hNewValue, TRUE, (XFA_ATTRIBUTE)-1); |
| 6828 return TRUE; | 6667 return TRUE; |
| 6829 } | 6668 } |
| 6830 return FALSE; | 6669 return FALSE; |
| 6831 } | 6670 } |
| 6832 | 6671 |
| 6833 // static | 6672 // static |
| 6834 void CXFA_FM2JSContext::GenerateSomExpression(const CFX_ByteStringC& szName, | 6673 void CXFA_FM2JSContext::GenerateSomExpression(const CFX_ByteStringC& szName, |
| 6835 int32_t iIndexFlags, | 6674 int32_t iIndexFlags, |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 6860 szSomExp += "]"; | 6699 szSomExp += "]"; |
| 6861 } | 6700 } |
| 6862 } | 6701 } |
| 6863 | 6702 |
| 6864 // static | 6703 // static |
| 6865 FX_BOOL CXFA_FM2JSContext::GetObjectByName( | 6704 FX_BOOL CXFA_FM2JSContext::GetObjectByName( |
| 6866 CFXJSE_Value* pThis, | 6705 CFXJSE_Value* pThis, |
| 6867 CFXJSE_Value* accessorValue, | 6706 CFXJSE_Value* accessorValue, |
| 6868 const CFX_ByteStringC& szAccessorName) { | 6707 const CFX_ByteStringC& szAccessorName) { |
| 6869 FX_BOOL bFlags = FALSE; | 6708 FX_BOOL bFlags = FALSE; |
| 6870 CXFA_FM2JSContext* pContext = | 6709 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 6871 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6872 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 6873 if (!pDoc) { | 6710 if (!pDoc) { |
| 6874 return bFlags; | 6711 return bFlags; |
| 6875 } | 6712 } |
| 6876 CXFA_ScriptContext* pScriptContext = pDoc->GetScriptContext(); | 6713 CXFA_ScriptContext* pScriptContext = pDoc->GetScriptContext(); |
| 6877 XFA_RESOLVENODE_RS resoveNodeRS; | 6714 XFA_RESOLVENODE_RS resoveNodeRS; |
| 6878 uint32_t dwFlags = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | | 6715 uint32_t dwFlags = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | |
| 6879 XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent; | 6716 XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent; |
| 6880 int32_t iRet = pScriptContext->ResolveObjects( | 6717 int32_t iRet = pScriptContext->ResolveObjects( |
| 6881 pScriptContext->GetThisObject(), | 6718 pScriptContext->GetThisObject(), |
| 6882 CFX_WideString::FromUTF8(szAccessorName).AsStringC(), resoveNodeRS, | 6719 CFX_WideString::FromUTF8(szAccessorName).AsStringC(), resoveNodeRS, |
| 6883 dwFlags); | 6720 dwFlags); |
| 6884 if (iRet >= 1 && resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { | 6721 if (iRet >= 1 && resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { |
| 6885 FXJSE_Value_Set(accessorValue, pScriptContext->GetJSValueFromMap( | 6722 FXJSE_Value_Set(accessorValue, pScriptContext->GetJSValueFromMap( |
| 6886 resoveNodeRS.nodes.GetAt(0))); | 6723 resoveNodeRS.nodes.GetAt(0))); |
| 6887 bFlags = TRUE; | 6724 bFlags = TRUE; |
| 6888 } | 6725 } |
| 6889 return bFlags; | 6726 return bFlags; |
| 6890 } | 6727 } |
| 6891 | 6728 |
| 6892 // static | 6729 // static |
| 6893 int32_t CXFA_FM2JSContext::ResolveObjects(CFXJSE_Value* pThis, | 6730 int32_t CXFA_FM2JSContext::ResolveObjects(CFXJSE_Value* pThis, |
| 6894 CFXJSE_Value* pRefValue, | 6731 CFXJSE_Value* pRefValue, |
| 6895 const CFX_ByteStringC& bsSomExp, | 6732 const CFX_ByteStringC& bsSomExp, |
| 6896 XFA_RESOLVENODE_RS& resoveNodeRS, | 6733 XFA_RESOLVENODE_RS& resoveNodeRS, |
| 6897 FX_BOOL bdotAccessor, | 6734 FX_BOOL bdotAccessor, |
| 6898 FX_BOOL bHasNoResolveName) { | 6735 FX_BOOL bHasNoResolveName) { |
| 6899 CFX_WideString wsSomExpression = CFX_WideString::FromUTF8(bsSomExp); | 6736 CFX_WideString wsSomExpression = CFX_WideString::FromUTF8(bsSomExp); |
| 6900 int32_t iRet = -1; | 6737 int32_t iRet = -1; |
| 6901 CXFA_FM2JSContext* pContext = | 6738 CXFA_Document* pDoc = pThis->ToJSContext(nullptr)->GetDocument(); |
| 6902 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6903 CXFA_Document* pDoc = pContext->GetDocument(); | |
| 6904 if (!pDoc) { | 6739 if (!pDoc) { |
| 6905 return iRet; | 6740 return iRet; |
| 6906 } | 6741 } |
| 6907 CXFA_ScriptContext* pScriptContext = pDoc->GetScriptContext(); | 6742 CXFA_ScriptContext* pScriptContext = pDoc->GetScriptContext(); |
| 6908 CXFA_Object* pNode = nullptr; | 6743 CXFA_Object* pNode = nullptr; |
| 6909 uint32_t dFlags = 0UL; | 6744 uint32_t dFlags = 0UL; |
| 6910 if (bdotAccessor) { | 6745 if (bdotAccessor) { |
| 6911 if (FXJSE_Value_IsNull(pRefValue)) { | 6746 if (FXJSE_Value_IsNull(pRefValue)) { |
| 6912 pNode = pScriptContext->GetThisObject(); | 6747 pNode = pScriptContext->GetThisObject(); |
| 6913 dFlags = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent; | 6748 dFlags = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent; |
| 6914 } else { | 6749 } else { |
| 6915 pNode = (CXFA_Object*)FXJSE_Value_ToObject(pRefValue, nullptr); | 6750 pNode = pRefValue->ToObject(nullptr); |
| 6916 ASSERT(pNode); | 6751 ASSERT(pNode); |
| 6917 if (bHasNoResolveName) { | 6752 if (bHasNoResolveName) { |
| 6918 CFX_WideString wsName; | 6753 CFX_WideString wsName; |
| 6919 if (CXFA_Node* pXFANode = pNode->AsNode()) { | 6754 if (CXFA_Node* pXFANode = pNode->AsNode()) { |
| 6920 pXFANode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); | 6755 pXFANode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); |
| 6921 } | 6756 } |
| 6922 if (wsName.IsEmpty()) { | 6757 if (wsName.IsEmpty()) { |
| 6923 CFX_WideStringC className; | 6758 CFX_WideStringC className; |
| 6924 pNode->GetClassName(className); | 6759 pNode->GetClassName(className); |
| 6925 wsName = FX_WSTRC(L"#") + className; | 6760 wsName = FX_WSTRC(L"#") + className; |
| 6926 } | 6761 } |
| 6927 wsSomExpression = wsName + wsSomExpression; | 6762 wsSomExpression = wsName + wsSomExpression; |
| 6928 dFlags = XFA_RESOLVENODE_Siblings; | 6763 dFlags = XFA_RESOLVENODE_Siblings; |
| 6929 } else { | 6764 } else { |
| 6930 dFlags = (bsSomExp == "*") | 6765 dFlags = (bsSomExp == "*") |
| 6931 ? (XFA_RESOLVENODE_Children) | 6766 ? (XFA_RESOLVENODE_Children) |
| 6932 : (XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | | 6767 : (XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | |
| 6933 XFA_RESOLVENODE_Properties); | 6768 XFA_RESOLVENODE_Properties); |
| 6934 } | 6769 } |
| 6935 } | 6770 } |
| 6936 } else { | 6771 } else { |
| 6937 pNode = (CXFA_Object*)FXJSE_Value_ToObject(pRefValue, nullptr); | 6772 pNode = pRefValue->ToObject(nullptr); |
| 6938 dFlags = XFA_RESOLVENODE_AnyChild; | 6773 dFlags = XFA_RESOLVENODE_AnyChild; |
| 6939 } | 6774 } |
| 6940 iRet = pScriptContext->ResolveObjects(pNode, wsSomExpression.AsStringC(), | 6775 iRet = pScriptContext->ResolveObjects(pNode, wsSomExpression.AsStringC(), |
| 6941 resoveNodeRS, dFlags); | 6776 resoveNodeRS, dFlags); |
| 6942 return iRet; | 6777 return iRet; |
| 6943 } | 6778 } |
| 6944 | 6779 |
| 6945 // static | 6780 // static |
| 6946 void CXFA_FM2JSContext::ParseResolveResult( | 6781 void CXFA_FM2JSContext::ParseResolveResult( |
| 6947 CFXJSE_Value* pThis, | 6782 CFXJSE_Value* pThis, |
| 6948 const XFA_RESOLVENODE_RS& resoveNodeRS, | 6783 const XFA_RESOLVENODE_RS& resoveNodeRS, |
| 6949 CFXJSE_Value* pParentValue, | 6784 CFXJSE_Value* pParentValue, |
| 6950 CFXJSE_Value**& resultValues, | 6785 CFXJSE_Value**& resultValues, |
| 6951 int32_t& iSize, | 6786 int32_t& iSize, |
| 6952 FX_BOOL& bAttribute) { | 6787 FX_BOOL& bAttribute) { |
| 6953 CXFA_FM2JSContext* pContext = | 6788 CXFA_FM2JSContext* pContext = pThis->ToJSContext(nullptr); |
| 6954 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6955 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | 6789 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); |
| 6956 iSize = 0; | 6790 iSize = 0; |
| 6957 resultValues = nullptr; | 6791 resultValues = nullptr; |
| 6958 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { | 6792 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { |
| 6959 bAttribute = FALSE; | 6793 bAttribute = FALSE; |
| 6960 iSize = resoveNodeRS.nodes.GetSize(); | 6794 iSize = resoveNodeRS.nodes.GetSize(); |
| 6961 resultValues = FX_Alloc(CFXJSE_Value*, iSize); | 6795 resultValues = FX_Alloc(CFXJSE_Value*, iSize); |
| 6962 for (int32_t i = 0; i < iSize; i++) { | 6796 for (int32_t i = 0; i < iSize; i++) { |
| 6963 resultValues[i] = new CFXJSE_Value(pIsolate); | 6797 resultValues[i] = new CFXJSE_Value(pIsolate); |
| 6964 FXJSE_Value_Set( | 6798 FXJSE_Value_Set( |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 6984 resultValues[i] = new CFXJSE_Value(pIsolate); | 6818 resultValues[i] = new CFXJSE_Value(pIsolate); |
| 6985 FXJSE_Value_Set(resultValues[i], objectProperties[i]); | 6819 FXJSE_Value_Set(resultValues[i], objectProperties[i]); |
| 6986 } | 6820 } |
| 6987 } | 6821 } |
| 6988 } | 6822 } |
| 6989 } | 6823 } |
| 6990 | 6824 |
| 6991 // static | 6825 // static |
| 6992 int32_t CXFA_FM2JSContext::ValueToInteger(CFXJSE_Value* pThis, | 6826 int32_t CXFA_FM2JSContext::ValueToInteger(CFXJSE_Value* pThis, |
| 6993 CFXJSE_Value* pValue) { | 6827 CFXJSE_Value* pValue) { |
| 6994 CXFA_FM2JSContext* pContext = | 6828 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 6995 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 6996 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 6997 int32_t iValue = 0; | 6829 int32_t iValue = 0; |
| 6998 if (FXJSE_Value_IsArray(pValue)) { | 6830 if (FXJSE_Value_IsArray(pValue)) { |
| 6999 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6831 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 7000 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6832 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 7001 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); | 6833 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); |
| 7002 FXJSE_Value_GetObjectPropByIdx(pValue, 1, propertyValue.get()); | 6834 FXJSE_Value_GetObjectPropByIdx(pValue, 1, propertyValue.get()); |
| 7003 FXJSE_Value_GetObjectPropByIdx(pValue, 2, jsObjectValue.get()); | 6835 FXJSE_Value_GetObjectPropByIdx(pValue, 2, jsObjectValue.get()); |
| 7004 if (FXJSE_Value_IsNull(propertyValue.get())) { | 6836 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 7005 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); | 6837 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); |
| 7006 } else { | 6838 } else { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 7022 iValue = FXSYS_atoi(szValue.c_str()); | 6854 iValue = FXSYS_atoi(szValue.c_str()); |
| 7023 } else { | 6855 } else { |
| 7024 iValue = FXJSE_Value_ToInteger(pValue); | 6856 iValue = FXJSE_Value_ToInteger(pValue); |
| 7025 } | 6857 } |
| 7026 return iValue; | 6858 return iValue; |
| 7027 } | 6859 } |
| 7028 | 6860 |
| 7029 // static | 6861 // static |
| 7030 FX_FLOAT CXFA_FM2JSContext::ValueToFloat(CFXJSE_Value* pThis, | 6862 FX_FLOAT CXFA_FM2JSContext::ValueToFloat(CFXJSE_Value* pThis, |
| 7031 CFXJSE_Value* arg) { | 6863 CFXJSE_Value* arg) { |
| 7032 CXFA_FM2JSContext* pContext = | 6864 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 7033 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 7034 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 7035 FX_FLOAT fRet = 0.0f; | 6865 FX_FLOAT fRet = 0.0f; |
| 7036 if (FXJSE_Value_IsArray(arg)) { | 6866 if (FXJSE_Value_IsArray(arg)) { |
| 7037 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6867 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 7038 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6868 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 7039 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); | 6869 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); |
| 7040 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); | 6870 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); |
| 7041 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); | 6871 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); |
| 7042 if (FXJSE_Value_IsNull(propertyValue.get())) { | 6872 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 7043 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); | 6873 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); |
| 7044 } else { | 6874 } else { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 7060 fRet = 0; | 6890 fRet = 0; |
| 7061 } else { | 6891 } else { |
| 7062 fRet = FXJSE_Value_ToFloat(arg); | 6892 fRet = FXJSE_Value_ToFloat(arg); |
| 7063 } | 6893 } |
| 7064 return fRet; | 6894 return fRet; |
| 7065 } | 6895 } |
| 7066 | 6896 |
| 7067 // static | 6897 // static |
| 7068 FX_DOUBLE CXFA_FM2JSContext::ValueToDouble(CFXJSE_Value* pThis, | 6898 FX_DOUBLE CXFA_FM2JSContext::ValueToDouble(CFXJSE_Value* pThis, |
| 7069 CFXJSE_Value* arg) { | 6899 CFXJSE_Value* arg) { |
| 7070 CXFA_FM2JSContext* pContext = | 6900 v8::Isolate* pIsolate = pThis->ToJSContext(nullptr)->GetScriptRuntime(); |
| 7071 static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr)); | |
| 7072 v8::Isolate* pIsolate = pContext->GetScriptRuntime(); | |
| 7073 FX_DOUBLE dRet = 0; | 6901 FX_DOUBLE dRet = 0; |
| 7074 if (FXJSE_Value_IsArray(arg)) { | 6902 if (FXJSE_Value_IsArray(arg)) { |
| 7075 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); | 6903 std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate)); |
| 7076 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); | 6904 std::unique_ptr<CFXJSE_Value> jsObjectValue(new CFXJSE_Value(pIsolate)); |
| 7077 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); | 6905 std::unique_ptr<CFXJSE_Value> newPropertyValue(new CFXJSE_Value(pIsolate)); |
| 7078 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); | 6906 FXJSE_Value_GetObjectPropByIdx(arg, 1, propertyValue.get()); |
| 7079 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); | 6907 FXJSE_Value_GetObjectPropByIdx(arg, 2, jsObjectValue.get()); |
| 7080 if (FXJSE_Value_IsNull(propertyValue.get())) { | 6908 if (FXJSE_Value_IsNull(propertyValue.get())) { |
| 7081 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); | 6909 GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get()); |
| 7082 } else { | 6910 } else { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7163 CFX_WideString wsFormat; | 6991 CFX_WideString wsFormat; |
| 7164 pAppProvider->LoadString(iStringID, wsFormat); | 6992 pAppProvider->LoadString(iStringID, wsFormat); |
| 7165 CFX_WideString wsMessage; | 6993 CFX_WideString wsMessage; |
| 7166 va_list arg_ptr; | 6994 va_list arg_ptr; |
| 7167 va_start(arg_ptr, iStringID); | 6995 va_start(arg_ptr, iStringID); |
| 7168 wsMessage.FormatV(wsFormat.c_str(), arg_ptr); | 6996 wsMessage.FormatV(wsFormat.c_str(), arg_ptr); |
| 7169 va_end(arg_ptr); | 6997 va_end(arg_ptr); |
| 7170 FXJSE_ThrowMessage( | 6998 FXJSE_ThrowMessage( |
| 7171 "", FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); | 6999 "", FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); |
| 7172 } | 7000 } |
| OLD | NEW |