Commit Graph

21575 Commits

Author SHA1 Message Date
marja
b57be748b1 Revert of Fix memory leak caused by field type in descriptor array. (patchset #3 id:40001 of https://codereview.chromium.org/955063002/)
Reason for revert:
Breaks test/mjsunit/debug-clearbreakpointgroup.js on arm64.debug.

Original issue's description:
> Fix memory leak caused by field type in descriptor array.
>
> When a field type is a map, it is wrapped in a weak cell upon storing to the descriptor array.
>
> Map::GetFieldType(i) does the unwrapping.
>
> BUG=v8:3877
> LOG=N
> TEST=cctest/test-heap/Regress3877
>
> Committed: https://crrev.com/77d3ae0e119893ac8d34ea6ca090cddd5bbf987e
> Cr-Commit-Position: refs/heads/master@{#26879}

TBR=verwaest@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3877

Review URL: https://codereview.chromium.org/960103003

Cr-Commit-Position: refs/heads/master@{#26883}
2015-02-26 14:46:07 +00:00
dcarney
6517181c49 Revert of ensure host compiler is always clang when cross compiling from linux (patchset #6 id:100001 of https://codereview.chromium.org/955393002/)
Reason for revert:
broke some things

Original issue's description:
> ensure host compiler is always clang when cross compiling from linux
>
> BUG=
>
> Committed: https://crrev.com/56039af476797accc238dcb24c7ab926899287a0
> Cr-Commit-Position: refs/heads/master@{#26881}

TBR=machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/964483002

Cr-Commit-Position: refs/heads/master@{#26882}
2015-02-26 14:43:55 +00:00
dcarney
56039af476 ensure host compiler is always clang when cross compiling from linux
BUG=

Review URL: https://codereview.chromium.org/955393002

Cr-Commit-Position: refs/heads/master@{#26881}
2015-02-26 14:40:24 +00:00
marja
1eddcf5b71 [strong] Declaration-after-use errors.
We cannot yet detect use-before-declaration in general, because for that we'd
need to analyze the context when compiling. But we can detect an error case
where we first see a use, then a declaration.

For this, I also added end position tracking (needed for error messages) to
VariableProxy.

Note: the position naming is completely inconsistent: start_position &
end_position, position & end_position, pos & end_pos, beg_pos & end_pos, to name
a few. This doesn't fix all of it, but tries to unify towards start_position &
end_position whenever possible w/ minimal changes.

BUG=

Review URL: https://codereview.chromium.org/943543002

Cr-Commit-Position: refs/heads/master@{#26880}
2015-02-26 13:48:19 +00:00
ulan
77d3ae0e11 Fix memory leak caused by field type in descriptor array.
When a field type is a map, it is wrapped in a weak cell upon storing to the descriptor array.

Map::GetFieldType(i) does the unwrapping.

BUG=v8:3877
LOG=N
TEST=cctest/test-heap/Regress3877

Review URL: https://codereview.chromium.org/955063002

Cr-Commit-Position: refs/heads/master@{#26879}
2015-02-26 13:16:39 +00:00
verwaest
1e0c067d55 Don't perform access checks for internally used properties
BUG=
TBR=dcarney@chromium.org

Review URL: https://codereview.chromium.org/956283003

Cr-Commit-Position: refs/heads/master@{#26878}
2015-02-26 12:56:18 +00:00
machenbach
03cef94a49 Make landmines delete all generated build artifacts.
BUG=chromium:403263
LOG=n

Review URL: https://codereview.chromium.org/963433002

Cr-Commit-Position: refs/heads/master@{#26877}
2015-02-26 12:39:48 +00:00
ishell
0d4ff29a60 Revert of Temporarily disable double fields unboxing. (patchset #1 id:1 of https://codereview.chromium.org/928733003/)
Reason for revert:
Preparing to land a fix.

Original issue's description:
> Temporarily disable double fields unboxing.
>
> Committed: https://crrev.com/209cf09ac9e36c1a24cdfa918bc579a4671c6842
> Cr-Commit-Position: refs/heads/master@{#26727}

TBR=jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/960173002

Cr-Commit-Position: refs/heads/master@{#26876}
2015-02-26 12:26:59 +00:00
verwaest
e9cdcb7174 Only dynamically perform access checks on the receiver if it's a JSGlobalProxy. Proxies up the chain are guaranteed to provide access if we had access to the receiver, since otherwise we wouldn't have been able to compile the stub in the first place. If the security check would change, the window navigates, changing the map of the JSGlobalProxy.
BUG=

Review URL: https://codereview.chromium.org/958843002

Cr-Commit-Position: refs/heads/master@{#26875}
2015-02-26 11:06:37 +00:00
verwaest
b5fc4b808c Remove internal use of v8::AccessType, always pass v8::ACCESS_HAS instead.
BUG=

Review URL: https://codereview.chromium.org/942963004

Cr-Commit-Position: refs/heads/master@{#26874}
2015-02-26 10:34:50 +00:00
machenbach
9dac60ad2d Add public version macros.
Side note: tools/v8-info.sh seems to have been broken ever
since the move to git.  At least it's not more broken now.

BUG=v8:3075
LOG=y

TEST=./script_test.py

Review URL: https://codereview.chromium.org/959713003

Cr-Commit-Position: refs/heads/master@{#26873}
2015-02-26 08:59:23 +00:00
jarin
bb13e7f746 Do not touch a binary op IC target in code object marked for lazy deopt.
Bad scenario:

- Enter a binop IC miss handler from optimized code object C from call
  site S,

- From the binop IC, invoke arbitrary javascript that lazy deopts C,
  so all relocation info is nuked and replaced with lazy deopt entries'
  reloc info. In particular, there is no reloc info for S.

- Still from the arbitrary JavaScript, make IC target's code object move.
  Note that the call site S is not updated.

- Return to the miss handler and inspect the IC's target. This will try
  to get the target from S, but that is a potentially invalid pointer.

It is quite possible that we will have to do a similar fix for other ICs,
but we will have to find a reliable repro first. I am not submitting a
repro here because it is quite long running and brittle (it
relies on code compaction happening while in the binop IC).

BUG=v8:3910
LOG=n
R=ishell@chromium.org

Review URL: https://codereview.chromium.org/958473004

Cr-Commit-Position: refs/heads/master@{#26872}
2015-02-26 08:36:54 +00:00
bmeurer
166dcd339f [gyp] Disable warnings generated by third party ICU code.
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/962523002

Cr-Commit-Position: refs/heads/master@{#26871}
2015-02-26 08:19:32 +00:00
bmeurer
0f783c676b [turbofan] Fix bogus covering of Word64Equal w/ zero.
Review URL: https://codereview.chromium.org/960783002

Cr-Commit-Position: refs/heads/master@{#26870}
2015-02-26 07:18:42 +00:00
arv
75a2440982 Minor test fix to block binding
The test did not invoke the function

BUG=v8:3921
LOG=N
R=adamk

Review URL: https://codereview.chromium.org/961463002

Cr-Commit-Position: refs/heads/master@{#26869}
2015-02-25 23:27:14 +00:00
adamk
fb6f68b8a8 Rename ParseModule to ParseModuleItemList
TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/952343002

Cr-Commit-Position: refs/heads/master@{#26868}
2015-02-25 23:00:32 +00:00
verwaest
6b1bddb454 Remove NativeContext from Literal array, since we always create the literals in the native context of the current closure.
BUG=

Review URL: https://codereview.chromium.org/952303002

Cr-Commit-Position: refs/heads/master@{#26867}
2015-02-25 22:41:48 +00:00
dcarney
24847156de [turbofan] change tracing in scheduler so block_id is id: instead of B and rpo_number is now B
R=mstarzinger@chromium.org

BUG=

Review URL: https://codereview.chromium.org/948263004

Cr-Commit-Position: refs/heads/master@{#26866}
2015-02-25 21:51:25 +00:00
arv
92b4eaddbc No need for special treatment of super in PreParserExpression
It turned out that we didn't need to treat super in a special way
in the pre parser expressions.

BUG=None
LOG=N
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/952283003

Cr-Commit-Position: refs/heads/master@{#26865}
2015-02-25 21:47:55 +00:00
arv
5c19e4f1cb Remove ValidateSuperCall
We don't need this since this case is now a SyntaxError.

BUG=None
LOG=N
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/957823002

Cr-Commit-Position: refs/heads/master@{#26864}
2015-02-25 21:46:52 +00:00
adamk
8b33567fd3 Simplify error message logic in ParseImportNames
The new logic ensures that the error messages are the same in the
"import { <reserved word> }" and "import { foo as <reserved ord> }"
cases.

Also prepares ParseImportNames for returning both the import and local
names to ParseImportClause.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/952863006

Cr-Commit-Position: refs/heads/master@{#26863}
2015-02-25 19:40:54 +00:00
dcarney
f1e2aa524c emit premonomorphic ics for keyed loads/stores in optimized code
R=verwaest@chromium.org

BUG=

Review URL: https://codereview.chromium.org/945313003

Cr-Commit-Position: refs/heads/master@{#26862}
2015-02-25 19:32:59 +00:00
dusan.milosavljevic
47e608ab52 MIPS64: Improve and fix hole nan checks and canonicalization.
TEST=kraken-1.1 benchmark
BUG=

Review URL: https://codereview.chromium.org/952233002

Cr-Commit-Position: refs/heads/master@{#26861}
2015-02-25 17:09:37 +00:00
balazs.kilvady
296b5b0e3a MIPS: Fix 'MIPS: Move Maps' back pointers from "transitions" to "constructor" field'.
BUG=

Review URL: https://codereview.chromium.org/950523003

Cr-Commit-Position: refs/heads/master@{#26860}
2015-02-25 16:41:56 +00:00
dcarney
e928c9d52b [turbofan] remove dependence of InstructionBlock on BasicBlock
BUG=

Review URL: https://codereview.chromium.org/951553005

Cr-Commit-Position: refs/heads/master@{#26859}
2015-02-25 16:37:58 +00:00
wingo
652061ed72 Rebase GDBJIT interface solely on JITCodeEvent
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/958623002

Cr-Commit-Position: refs/heads/master@{#26858}
2015-02-25 15:40:57 +00:00
rossberg
68c8073a51 Remove effectful assertion
R=mstarzinger@chromium.org
BUG=461520
LOG=N

Review URL: https://codereview.chromium.org/955973003

Cr-Commit-Position: refs/heads/master@{#26857}
2015-02-25 15:34:21 +00:00
jkummerow
c8479785fc Make ComputeReceiverForNonGlobal faster
by checking instance type rather than constructor.

BUG=chromium:461734
LOG=n
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/953283004

Cr-Commit-Position: refs/heads/master@{#26856}
2015-02-25 15:24:41 +00:00
ben
726eb0582b Add v8::Object::GetRealNamedPropertyAttributes()
Add v8::Object::GetRealNamedPropertyAttributes() and
v8::Object::GetRealNamedPropertyAttributesInPrototypeChain().

See https://github.com/iojs/io.js/issues/864 for background.

Review URL: https://codereview.chromium.org/942003003

Cr-Commit-Position: refs/heads/master@{#26855}
2015-02-25 15:09:20 +00:00
rossberg
c094da9233 [strong] Make functions and generators non-extensible non-constructors
R=dslomov@chromium.org
BUG=

Review URL: https://codereview.chromium.org/954693003

Cr-Commit-Position: refs/heads/master@{#26854}
2015-02-25 14:52:51 +00:00
marja
238ad54d0f Move compilation error handling into a separate class.
In addition to Parser, other phases (such as scope analysis) need to handle
compilation errors in the future. PendingCompilationErrorHandled takes care of
error handling in a unified way.

Split from https://codereview.chromium.org/943543002/ .

R=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/960543002

Cr-Commit-Position: refs/heads/master@{#26853}
2015-02-25 14:18:34 +00:00
machenbach
b00ff50d52 Clobber output directory on linux and mac after landmine.
Xcode uses a different naming scheme for directories within
the xcodebuild directory. But it is safe to just delete
everything withing xcodebuild or out. Keep the soft clobber
for windows' build directory only, where subdirectories
follow the *release* and *debug* naming scheme.

BUG=chromium:403263
LOG=n
TBR=jochen@chromium.org

Review URL: https://codereview.chromium.org/955953002

Cr-Commit-Position: refs/heads/master@{#26852}
2015-02-25 14:16:40 +00:00
yangguo
30a6e46a39 Use easier method to determine allocation space when serializing.
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/944923005

Cr-Commit-Position: refs/heads/master@{#26851}
2015-02-25 14:05:44 +00:00
yangguo
f9fd33c10f Fix assertion when creating custom startup snapshots.
R=vogelheim@chromium.org

Review URL: https://codereview.chromium.org/960513002

Cr-Commit-Position: refs/heads/master@{#26850}
2015-02-25 13:56:13 +00:00
bmeurer
9da259fb1f [x86] Use better left operand heuristic for Float64Add and Float64Mul.
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/958583003

Cr-Commit-Position: refs/heads/master@{#26849}
2015-02-25 12:10:09 +00:00
bmeurer
49b112e117 Revert of Rebase GDBJIT interface solely on JITCodeEvent (patchset #2 id:20001 of https://codereview.chromium.org/957673004/)
Reason for revert:
Doesn't compile

Original issue's description:
> Rebase GDBJIT interface solely on JITCodeEvent
>
> R=mstarzinger@chromium.org
> BUG=
>
> Committed: 8989d828e8

TBR=mstarzinger@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/954833004

Cr-Commit-Position: refs/heads/master@{#26848}
2015-02-25 12:03:04 +00:00
Andy Wingo
8989d828e8 Rebase GDBJIT interface solely on JITCodeEvent
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/957673004

Cr-Commit-Position: refs/heads/master@{#26847}
2015-02-25 11:49:47 +00:00
bmeurer
e1c08bafdd [x64] Improve materialization of certain double constants (i.e. -0.0).
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/946423003

Cr-Commit-Position: refs/heads/master@{#26846}
2015-02-25 11:28:52 +00:00
yangguo
4b5ff0c5e2 Attach snapshot data blob to the isolate.
R=vogelheim@chromium.org
BUG=chromium:461259
LOG=N

Review URL: https://codereview.chromium.org/949623006

Cr-Commit-Position: refs/heads/master@{#26845}
2015-02-25 11:14:56 +00:00
hpayer
fd35be4065 Just add slots that point to to-space objects back to the store buffer.
BUG=

Review URL: https://codereview.chromium.org/946973008

Cr-Commit-Position: refs/heads/master@{#26844}
2015-02-25 10:29:50 +00:00
bmeurer
6a42682975 [turbofan] Fix simplified lowering of Int32Div.
Optimize for the common case and get rid of the unreadable Diamond
helper code there.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/954173002

Cr-Commit-Position: refs/heads/master@{#26843}
2015-02-25 09:46:12 +00:00
machenbach
0fff64da8b Trigger a landmine on first-time landmine deployment.
Without this change, it is non-trivial to know during
runhooks, if a landmine was just triggered in a checkout
that doesn't have the initial landmines script CL yet, i.e.
that didn't create a .landmines file yet.

BUG=chromium:403263
LOG=n

Review URL: https://codereview.chromium.org/954153002

Cr-Commit-Position: refs/heads/master@{#26842}
2015-02-25 09:20:04 +00:00
bmeurer
b1c2a34956 [turbofan] Don't introduce additional computation when hoisting out of loops.
Review URL: https://codereview.chromium.org/958533002

Cr-Commit-Position: refs/heads/master@{#26841}
2015-02-25 08:11:48 +00:00
bmeurer
1d56742a8e [turbofan] Don't switchify branches with hints.
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/929403004

Cr-Commit-Position: refs/heads/master@{#26840}
2015-02-25 07:53:13 +00:00
yangguo
c18de60248 Use a hashmap to lookup items in the partial snapshot cache when serializing.
R=vogelheim@chromium.org

Review URL: https://codereview.chromium.org/952933002

Cr-Commit-Position: refs/heads/master@{#26839}
2015-02-25 07:49:33 +00:00
mstarzinger
bc483ddac4 Use iostream formatting when printing code.
R=svenpanne@chromium.org
TEST=manual

Review URL: https://codereview.chromium.org/944223003

Cr-Commit-Position: refs/heads/master@{#26838}
2015-02-25 07:35:47 +00:00
akos.palfi
ee908a2b6a MIPS: Move Maps' back pointers from "transitions" to "constructor" field
Port affcfaf428

BUG=

Review URL: https://codereview.chromium.org/954863002

Cr-Commit-Position: refs/heads/master@{#26837}
2015-02-25 03:25:02 +00:00
adamk
1a8dc98cbf Fix up ParseProgram and ParseModule to do something sane with module scopes
The FunctionLiteral returned from the parser for modules now has a MODULE_SCOPE,
instead of associating the module scope with a Block inside it. This makes
it easy to get at the ModuleDescriptor from the caller of Parse(), so I've added
a basic test that pokes at the scope and the descriptor. Expect more tests
in this vein.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/953983002

Cr-Commit-Position: refs/heads/master@{#26836}
2015-02-24 22:39:35 +00:00
jkummerow
affcfaf428 Move Maps' back pointers from "transitions" to "constructor" field
Review URL: https://codereview.chromium.org/950283002

Cr-Commit-Position: refs/heads/master@{#26835}
2015-02-24 20:50:24 +00:00
arv
8ad35cb288 Use for-of loops in collection constructors
This is to reduce code duplication but also to get the correct
behavior when we make for-of handle abrupt completion correctly.

BUG=None
LOG=N
R=adamk

Review URL: https://codereview.chromium.org/956623003

Cr-Commit-Position: refs/heads/master@{#26834}
2015-02-24 19:12:41 +00:00