Changeset 769 for trunk/src/script/api/qscriptengine.cpp
- Timestamp:
- Aug 2, 2010, 9:27:30 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.3 (added) merged: 768 /branches/vendor/nokia/qt/current merged: 767 /branches/vendor/nokia/qt/4.6.2 removed
- Property svn:mergeinfo changed
-
trunk/src/script/api/qscriptengine.cpp
r651 r769 42 42 #include <QtCore/qmetaobject.h> 43 43 44 44 45 #include "Error.h" 45 46 #include "JSArray.h" … … 663 664 encoding = QCoreApplication::UnicodeUTF8; 664 665 else 665 return JSC::throwError(exec, JSC::GeneralError, QString::fromLatin1("qsTranslate(): invalid encoding '% s'").arg(encStr));666 return JSC::throwError(exec, JSC::GeneralError, QString::fromLatin1("qsTranslate(): invalid encoding '%'").arg(encStr)); 666 667 } 667 668 int n = -1; … … 697 698 return JSC::throwError(exec, JSC::GeneralError, "qsTr(): second argument (comment) must be a string"); 698 699 if ((args.size() > 2) && !args.at(2).isNumber()) 699 return JSC::throwError(exec, JSC::GeneralError, "qsTr anslate(): third argument (n) must be a number");700 return JSC::throwError(exec, JSC::GeneralError, "qsTr(): third argument (n) must be a number"); 700 701 #ifndef QT_NO_QOBJECT 701 702 QString context; 702 QScriptContext *ctx = QScriptEnginePrivate::contextForFrame(exec); 703 if (ctx && ctx->parentContext()) 704 context = QFileInfo(QScriptContextInfo(ctx->parentContext()).fileName()).baseName(); 703 // The first non-empty source URL in the call stack determines the translation context. 704 { 705 JSC::ExecState *frame = exec->removeHostCallFrameFlag(); 706 while (frame) { 707 if (frame->codeBlock() && frame->codeBlock()->source() 708 && !frame->codeBlock()->source()->url().isEmpty()) { 709 context = QFileInfo(frame->codeBlock()->source()->url()).baseName(); 710 break; 711 } 712 frame = frame->callerFrame()->removeHostCallFrameFlag(); 713 } 714 } 705 715 #endif 706 716 QString text(args.at(0).toString(exec)); … … 769 779 770 780 QScriptEnginePrivate::QScriptEnginePrivate() 771 : registeredScriptValues(0), freeScriptValues(0), 781 : registeredScriptValues(0), freeScriptValues(0), 772 782 registeredScriptStrings(0), inEval(false) 773 783 { … … 1008 1018 return; 1009 1019 QScript::GlobalObject *glob = static_cast<QScript::GlobalObject*>(originalGlobalObject()); 1010 if (object == originalGlobalObjectProxy) 1020 if (object == originalGlobalObjectProxy) 1011 1021 glob->customGlobalObject = 0; 1012 else { 1022 // Sync the internal prototype, since JSObject::prototype() is not virtual. 1023 glob->setPrototype(originalGlobalObjectProxy->prototype()); 1024 } else { 1013 1025 Q_ASSERT(object != originalGlobalObject()); 1014 1026 glob->customGlobalObject = object; 1027 1028 1015 1029 } 1016 1030 } … … 1590 1604 #ifndef QT_NO_REGEXP 1591 1605 1592 extern QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax);1606 extern QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax); 1593 1607 1594 1608 /*! … … 2922 2936 JSC::JSGlobalObject *glob = d->originalGlobalObject(); 2923 2937 if (!jscObject || !jscObject.isObject()) 2924 jscObject = glob;2938 jscObject = ; 2925 2939 // unsigned attribs = JSC::DontEnum; 2926 2940 JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 5, JSC::Identifier(exec, "qsTranslate"), QScript::functionQsTranslate)); 2927 2941 JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 2, JSC::Identifier(exec, "QT_TRANSLATE_NOOP"), QScript::functionQsTranslateNoOp)); 2928 JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC:: NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 3, JSC::Identifier(exec, "qsTr"), QScript::functionQsTr));2942 JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::(exec, glob->prototypeFunctionStructure(), 3, JSC::Identifier(exec, "qsTr"), QScript::functionQsTr)); 2929 2943 JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TR_NOOP"), QScript::functionQsTrNoOp)); 2930 2944
Note:
See TracChangeset
for help on using the changeset viewer.