aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp16
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations35
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp7
3 files changed, 20 insertions, 38 deletions
diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
index 17a99d6a43..ccb3a2dcdc 100644
--- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
+++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
@@ -220,7 +220,21 @@ public:
{
for (int i = 0, ei = m_stackTrace.size(); i != ei; ++i) {
m_capturedScope.append(NamedRefs());
- ScopeJob job(&collector, i, 0);
+ FrameJob frameJob(&collector, i);
+ debugger->runInEngine(&frameJob);
+ QJsonObject frameObj = frameJob.returnValue();
+ QJsonArray scopes = frameObj.value(QLatin1String("scopes")).toArray();
+ int nscopes = scopes.size();
+ int s = 0;
+ for (s = 0; s < nscopes; ++s) {
+ QJsonObject o = scopes.at(s).toObject();
+ if (o.value(QLatin1String("type")).toInt(-2) == 1) // CallContext
+ break;
+ }
+ if (s == nscopes)
+ return;
+
+ ScopeJob job(&collector, i, s);
debugger->runInEngine(&job);
NamedRefs &refs = m_capturedScope.last();
QJsonObject object = job.returnValue();
diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations
index 55007189b8..9576dca707 100644
--- a/tests/auto/qml/ecmascripttests/TestExpectations
+++ b/tests/auto/qml/ecmascripttests/TestExpectations
@@ -3938,25 +3938,8 @@ language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-
language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments
language/arguments-object/mapped/Symbol.iterator
language/arguments-object/unmapped/Symbol.iterator
-language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-1
-language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-2
-language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-1
-language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-2
-language/block-scope/leave/nested-block-let-declaration-only-shadows-outer-parameter-value-1
-language/block-scope/leave/nested-block-let-declaration-only-shadows-outer-parameter-value-2
-language/block-scope/leave/outermost-binding-updated-in-catch-block-nested-block-let-declaration-unseen-outside-of-block
-language/block-scope/leave/try-block-let-declaration-only-shadows-outer-parameter-value-1
-language/block-scope/leave/try-block-let-declaration-only-shadows-outer-parameter-value-2
-language/block-scope/leave/verify-context-in-finally-block
-language/block-scope/leave/verify-context-in-for-loop-block
-language/block-scope/leave/verify-context-in-labelled-block
-language/block-scope/leave/verify-context-in-try-block
-language/block-scope/leave/x-after-break-to-label
-language/block-scope/leave/x-before-continue
-language/block-scope/shadowing/const-declaration-shadowing-catch-parameter
-language/block-scope/shadowing/const-declarations-shadowing-parameter-name-let-const-and-var-variables
-language/block-scope/shadowing/let-declaration-shadowing-catch-parameter
-language/block-scope/shadowing/let-declarations-shadowing-parameter-name-let-const-and-var
+language/block-scope/syntax/for-in/acquire-properties-from-array
+language/block-scope/syntax/for-in/acquire-properties-from-object
language/block-scope/syntax/for-in/mixed-values-in-iteration
language/computed-property-names/basics/string
language/computed-property-names/basics/symbol
@@ -4004,7 +3987,6 @@ language/destructuring/binding/syntax/recursive-array-and-object-patterns
language/eval-code/direct/lex-env-distinct-cls
language/eval-code/direct/lex-env-distinct-const
language/eval-code/direct/lex-env-distinct-let
-language/eval-code/direct/lex-env-heritage
language/eval-code/direct/lex-env-no-init-cls
language/eval-code/direct/lex-env-no-init-const
language/eval-code/direct/lex-env-no-init-let
@@ -4026,7 +4008,6 @@ language/eval-code/indirect/always-non-strict
language/eval-code/indirect/lex-env-distinct-cls
language/eval-code/indirect/lex-env-distinct-const
language/eval-code/indirect/lex-env-distinct-let
-language/eval-code/indirect/lex-env-heritage
language/eval-code/indirect/lex-env-no-init-cls
language/eval-code/indirect/lex-env-no-init-const
language/eval-code/indirect/lex-env-no-init-let
@@ -6186,14 +6167,12 @@ language/expressions/yield/star-rhs-unresolvable
language/expressions/yield/star-string
language/expressions/yield/then-return
language/expressions/yield/within-for
-language/function-code/block-decl-strict
language/function-code/each-param-has-own-non-shared-eval-scope
language/function-code/each-param-has-own-scope
language/function-code/eval-param-env-with-computed-key
language/function-code/eval-param-env-with-prop-initializer
language/function-code/switch-case-decl-strict
language/function-code/switch-dflt-decl-strict
-language/global-code/block-decl-strict
language/global-code/decl-lex
language/global-code/decl-lex-configurable-global
language/global-code/decl-lex-deletion
@@ -6442,8 +6421,6 @@ language/statements/async-function/try-return-finally-throw
language/statements/async-function/try-throw-finally-reject
language/statements/async-function/try-throw-finally-return
language/statements/async-function/try-throw-finally-throw
-language/statements/block/scope-lex-close
-language/statements/block/scope-lex-open
language/statements/block/tco-stmt
language/statements/block/tco-stmt-list
language/statements/class/accessor-name-inst-computed
@@ -7445,12 +7422,10 @@ language/statements/const/function-local-closure-get-before-initialization
language/statements/const/function-local-use-before-initialization-in-declaration-statement
language/statements/const/function-local-use-before-initialization-in-prior-statement
language/statements/const/global-closure-get-before-initialization
-language/statements/const/syntax/const
language/statements/const/syntax/const-invalid-assignment-next-expression-for
language/statements/const/syntax/const-invalid-assignment-statement-body-for-in
language/statements/const/syntax/const-invalid-assignment-statement-body-for-of
language/statements/const/syntax/const-outer-inner-let-bindings
-language/statements/continue/shadowing-loop-variable-in-same-scope-as-continue
language/statements/do-while/tco-body
language/statements/empty/cptn-value
language/statements/for/dstr-const-ary-init-iter-close
@@ -8697,7 +8672,6 @@ language/statements/try/dstr-obj-ptrn-list-err
language/statements/try/dstr-obj-ptrn-prop-eval-err
language/statements/try/dstr-obj-ptrn-prop-id-get-value-err
language/statements/try/dstr-obj-ptrn-prop-id-init-throws
-language/statements/try/scope-catch-block-lex-close
language/statements/try/scope-catch-block-lex-open
language/statements/try/scope-catch-param-lex-open
language/statements/try/scope-catch-param-var-none
@@ -8776,14 +8750,11 @@ built-ins/NativeErrors/SyntaxError/is-error-object
built-ins/NativeErrors/TypeError/is-error-object
built-ins/NativeErrors/URIError/is-error-object
-built-ins/Object/prototype/toLocaleString/primitive_this_value
language/expressions/object/yield-non-strict-access
language/expressions/object/yield-non-strict-syntax
language/expressions/object/not-defined
language/expressions/object/prop-def-id-get-error
language/expressions/object/prop-def-id-valid
-language/function-code/10.4.3-1-104
-language/function-code/10.4.3-1-106
# Expected to fail but passed ---
language/eval-code/direct/var-env-global-lex-non-strict
@@ -8791,4 +8762,4 @@ language/global-code/decl-lex-restricted-global
language/statements/const/global-use-before-initialization-in-declaration-statement
language/statements/const/global-use-before-initialization-in-prior-statement
language/statements/let/global-use-before-initialization-in-declaration-statement
-language/statements/let/global-use-before-initialization-in-prior-statement \ No newline at end of file
+language/statements/let/global-use-before-initialization-in-prior-statement
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index a57e0b2c79..4945a23302 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -3209,9 +3209,7 @@ void tst_QJSEngine::threadedEngine()
void tst_QJSEngine::functionDeclarationsInConditionals()
{
- // Even though this is bad practice (and test262 covers it with best practices test cases),
- // we do allow for function declarations in if and while statements, as unfortunately that's
- // real world JavaScript. (QTBUG-33064 for example)
+ // Visibility of function declarations inside blocks is limited to the block
QJSEngine eng;
QJSValue result = eng.evaluate("if (true) {\n"
" function blah() { return false; }\n"
@@ -3219,8 +3217,7 @@ void tst_QJSEngine::functionDeclarationsInConditionals()
" function blah() { return true; }\n"
"}\n"
"blah();");
- QVERIFY(result.isBool());
- QCOMPARE(result.toBool(), true);
+ QVERIFY(result.isError());
}
void tst_QJSEngine::arrayPop_QTBUG_35979()