Bug 143160

Summary: jsc stress tests failing with debugger enabled
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: ASSIGNED ---    
Severity: Normal CC: benjamin, fpizlo, ggaren, joepeck, mmirman, msaboff, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 143105    

Description Mark Lam 2015-03-27 15:44:47 PDT
By setting Options::forceDebuggerBytecodeGeneration() = true to force the BytecodeGenerator to generate debugger friendly bytecode, the JSC stress tests now fails as follows:

** The following JSC stress test failures have been introduced:
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments-iterator.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/arguments.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/class-syntax-default-constructor.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/const.js.layout
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/const.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/constant-count.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-double.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-become-int32.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset-changetype.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-reset.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-dot-arguments.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-ftl
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-ftl-no-cjit
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/named-function-expression.js.layout-no-llint
	regress/script-tests/deltablue-varargs.js.dfg-eager-no-cjit-validate
	regress/script-tests/deltablue-varargs.js.ftl-eager-no-cjit
	regress/script-tests/deltablue-varargs.js.ftl-no-cjit-validate
	regress/script-tests/deltablue-varargs.js.no-cjit-validate-phases

Results for JSC stress tests:
    89 failures found.

I haven't investigated the rest of the failures yet, but at least the constant-count.js case is a regression.
Comment 1 Radar WebKit Bug Importer 2015-03-27 15:51:44 PDT
<rdar://problem/20333500>
Comment 2 Mark Lam 2015-03-27 16:42:30 PDT
The source of the constant-count.js regression is http://trac.webkit.org/changeset/174226.