haikuwebkit/LayoutTests/js/stringimpl-to-jsstring-on-l...

6 lines
112 B
Plaintext
Raw Permalink Normal View History

[JSC] Make OutOfMemory error as instance of RangeError https://bugs.webkit.org/show_bug.cgi?id=211952 Reviewed by Mark Lam. JSTests: * ChakraCore/test/Error/outofmem.baseline-jsc: * es6/String.prototype_methods_String.prototype.padEnd.js: (TestMemoryLimits): * es6/String.prototype_methods_String.prototype.padStart.js: (TestMemoryLimits): * slowMicrobenchmarks/function-constructor-with-huge-strings.js: * stress/array-join-on-strings-need-overflow-checks.js: * stress/big-wasm-memory-grow-no-max.js: (test): * stress/big-wasm-memory-grow.js: (test): * stress/big-wasm-memory.js: (test): * stress/bigint-exponential-oom.js: (shouldThrow): * stress/bigint-int32-min-shift.js: (shouldThrow): * stress/check-symbol-description-oom.js: * stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js: * stress/intl-canonicalize-locale-list-error-oom.js: (shouldThrow): * stress/joined-strings-should-not-exceed-max-string-length.js: * stress/js-fixed-array-out-of-memory.js: (test): * stress/json-stringified-overflow-2.js: (catch): * stress/json-stringified-overflow.js: (catch): * stress/json-stringify-string-builder-overflow.js: * stress/missing-exception-check-in-JSValue-toWTFStringSlowCase.js: * stress/missing-exception-check-in-array-prototype-fastJoin.js: * stress/missing-exception-check-in-canonicalizeLocaleList.js: * stress/missing-exception-check-in-json-stringifier-gap.js: * stress/missing-exception-check-in-string-compare.js: * stress/missing-exception-check-in-string-greater-than-compare.js: * stress/missing-exception-check-in-string-greater-than-or-equal-compare.js: * stress/missing-exception-check-in-string-lastIndexOf.js: * stress/missing-exception-check-in-string-less-than-compare.js: * stress/missing-exception-check-in-string-less-than-or-equal-compare.js: * stress/missing-exception-check-in-string-toLower.js: * stress/missing-exception-check-in-string-toUpper.js: * stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js: * stress/out-of-memory-while-constructing-BytecodeGenerator.js: * stress/regexp-prototype-exec-on-too-long-rope.js: * stress/regexp-prototype-match-on-too-long-rope.js: * stress/regexp-prototype-test-on-too-long-rope.js: * stress/regress-169783.js: (doTest): * stress/regress-178385.js: * stress/regress-178386.js: * stress/regress-185888.js: * stress/regress-189132.js: * stress/regress-190187.js: * stress/regress-191563.js: * stress/scoped-arguments-table-should-be-tolerant-for-oom.js: (i.canThrow): * stress/string-16bit-repeat-overflow.js: * stress/string-overflow-createError-builder.js: * stress/string-overflow-createError-fit.js: * stress/string-overflow-createError.js: * stress/string-prototype-charCodeAt-on-too-long-rope.js: * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: * stress/switch-string-oom.js: (testLowerTiers): (testFTL): * stress/test-exception-assert-in-ExceptionHelpers-createError.js: * stress/test-out-of-memory.js: * stress/typed-array-subarray-can-throw-oom-error.js: (get bar): * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js: * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js: Source/JavaScriptCore: The spec sometimes requires "check parameters and throw RangeError" before allocating an object. But we are just allocating an object and throwing an out-of-memory error since wrong parameter will cause out-of-memory. If out-of-memory error is RangeError, then we can keep our current behavior while we can make us spec compliant. And note that out-of-memory error is RangeError in SpiderMonkey and V8. This patch makes out-of-memory error as RangeError instead of Error. We also fix @throwOutOfMemoryError in builtin code: the previous thrown errors are not marked as out-of-memory error. * bytecode/BytecodeList.rb: * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitThrowStaticError): (JSC::BytecodeGenerator::emitThrowReferenceError): (JSC::BytecodeGenerator::emitThrowTypeError): (JSC::BytecodeGenerator::emitThrowRangeError): (JSC::BytecodeGenerator::emitThrowOutOfMemoryError): * bytecompiler/BytecodeGenerator.h: * bytecompiler/NodesCodegen.cpp: (JSC::RegExpNode::emitBytecode): (JSC::BytecodeIntrinsicNode::emit_intrinsic_throwTypeError): (JSC::BytecodeIntrinsicNode::emit_intrinsic_throwRangeError): * dfg/DFGOperations.cpp: * runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL): * runtime/Error.cpp: (JSC::createError): (JSC::createOutOfMemoryError): * runtime/Error.h: * runtime/ErrorType.cpp: (JSC::errorTypeName): (WTF::printInternal): * runtime/ErrorType.h: We introduced ErrorTypeWithExtension separately from ErrorType to keep ErrorType one-on-one to spec-specified error types. LayoutTests: * inspector/debugger/no-pause-out-of-memory-exception-expected.txt: * js/array-join-expected.txt: * js/dom/concat-large-strings-crash-expected.txt: * js/dom/concat-large-strings-crash2-expected.txt: * js/dom/script-tests/string-replacement-outofmemory.js: * js/dom/string-concatenate-outofmemory-expected.txt: * js/dom/string-replacement-outofmemory-expected.txt: * js/large-expressions-expected.txt: * js/resources/string-concatenate-outofmemory.js: * js/script-tests/array-join.js: * js/script-tests/stack-overflow-regexp.js: (shouldThrow.recursiveCall): (shouldThrow): * js/script-tests/string-padend.js: * js/script-tests/string-padstart.js: * js/script-tests/string-repeat.js: * js/script-tests/stringimpl-to-jsstring-on-large-strings-1.js: * js/stack-overflow-regexp-expected.txt: * js/string-padend-expected.txt: * js/string-padstart-expected.txt: * js/string-repeat-expected.txt: * js/stringimpl-to-jsstring-on-large-strings-1-expected.txt: Canonical link: https://commits.webkit.org/224872@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-05-16 08:24:22 +00:00
PASS createStrings() threw exception RangeError: Out of memory.
PASS successfullyParsed is true
TEST COMPLETE