Difference between default and ignition: can't externalize twice |
||||
Issue description
# Minimized program:
function f() { externalizeString("foo"); }
f();
gc();gc();gc();gc();
f();
# Compared default with ignition_staging
# Flags of default:
--abort_on_stack_overflow --expose-gc --allow-natives-syntax --invoke-weak-callbacks --omit-quit --gc-interval=169 --expose-externalize-string --random-seed 2080744775
# Flags of ignition_staging:
--abort_on_stack_overflow --expose-gc --allow-natives-syntax --invoke-weak-callbacks --omit-quit --gc-interval=169 --expose-externalize-string --random-seed 2080744775 --ignition-staging
Difference:
Different total output lines: 0 vs. 4
### Start of configuration default:
### End of configuration default
### Start of configuration ignition_staging:
out9_ignition_staging/fuzz-07767.js.minimized:1: externalizeString() can't externalize twice.
function f() { externalizeString("foo"); }
^
### End of configuration ignition_staging
,
Nov 4 2016
I'm not sure what externalizeString does and why it can't be called on a string twice, but could this be due to Ignition's lack of code aging? In FCG the f() gets aged and gced, which GCs the string literal used by it, and allows us to re-externalize (with a new string) on the second call. In Ignition we never age the code and it tries to externalize the original string in the second call.
,
Nov 10 2016
Yeah this is code aging related - I can repo it on full-codegen by passing "--no-age-code", so a VM detail not something javascript correctness issue. Michael, can you suppress tests cases like this one? I'm going to mark as wontfix, but please reopen if we need to find another way to supress it.
,
Nov 10 2016
Assigning to myself to think about suppression.
,
Dec 13 2016
|
||||
►
Sign in to add a comment |
||||
Comment 1 by machenb...@chromium.org
, Nov 4 2016