Fix DOMDocument::createElement{,NS}

Summary: Use registered class to create new elements.

Fixes #2962

Reviewed By: @sgolemon

Differential Revision: D1657409

Signature: t1:1657409:1415147180:2a159c68faf214dc7fb21f94a956c14400cc17b4
Use smart_malloc for Resumable objects so we can parse the heap.

Summary: Trying the simple approach. If this increases memory usage
too much, it might be possible to rearrange things and make
a new Resumable kind that we can parse w/out extra overhead.

Reviewed By: @jano

Differential Revision: D1658158
Use smart_malloc for AwaitAllWaitHandle

Summary: Need a parseable header that reflects the object's true
size, or a dedicated Kind so we know how to parse it. Trying
the simple approach first. This class is also going to need
a custom scanner because of the embedded objects it holds.

Reviewed By: @mclarkelauer

Differential Revision: D1658087
Convert easy arithmetic ops to DELEGATE

Summary: My plan for now is to convert everything I can that's explicitly
implemented in code-gen-arm.cpp before tackling the long list of punting
opcodes.

Another few issues here, most notably `imul`. I think emitting `imul` as
`Mul` on ARM is wrong, because I realized we're actually counting on it
to set condition flags, and there's no multiply instruction on ARM that
will do that. I split it into another vasm opcode to make this clear.

It'd be nice to use non-flags-setting ARM opcodes when they're not
needed; I guess this can be done in a later pass (after DCE determines
that the flags aren't used).

Reviewed By: @edwinsmith

Differential Revision: D1658861
handle yield and yield break

Summary: we dehackify yield naively. Since hhvm generators behave differently, some code WILL not
dehackify correctly, but the solution is for hhvm generators to match zend.
yield break is desugared into a return (with an additional dummy yield in case its the
only use of yield)
Depends on D1655610
Fixes t5347599

Reviewed By: @jwatzman

Differential Revision: D1657236
Move RefData's m_cow and m_z fields to make room for kind.

Summary: This puts them at an unaligned address, so get rid of the m_cowAndZ
union.

Reviewed By: @jdelong

Differential Revision: D1658401
Default setlocale(LC_CTYPE, ""); on startup.

Summary: To match PHP5 default behavior.

Note that you shouldn't rely on default behavior.
Set your locale explicitly.

Closes #3011

Reviewed By: @paulbiss

Differential Revision: D1660528

Signature: t1:1660528:1415175877:b4f11df38d40bdae87f8cd50a09a9ec62da60ba2
Fix IDL style const declarations to use int64_t, not long

Summary: long *may* be symnonymous with int64_t, but it might not be.

Closes #3551

Reviewed By: @paulbiss

Differential Revision: D1660464

Signature: t1:1660464:1415168294:e2d2a87eb3e25fc0f045bc9ba33fbe37a0aef12c
Add regression test for PDO::ATTR_ERRMODE with invalid value

Summary: http://github.com/facebook/hhvm/issues/2307 reported this as broken
but it's working now.  Add a unit test to make sure it never breaks again.

Closes #2307

Reviewed By: @paulbiss

Differential Revision: D1660479

Signature: t1:1660479:1415168323:19f05338bde37cbff5d2adb7418fdcffeb2808b1
Basic parser for AT

Summary: This is a simple parser for Box's augmented types, as the
basis of an AT-to-Hack conversion tool. It was optimized for being easy
to write, not really for having good error recovery/detection or for
being super flexible, since AT isn't really changing, and this will be a
run-once tool.

https://github.com/box/augmented_types/wiki/The-Type-System

Reviewed By: @ptarjan

Differential Revision: D1652771

Signature: t1:1652771:1415154622:03f5f990895cedb819126df07dc6c439d898f510
New orphan DOM elements should have an $ownerDocument

Summary: Changes the way that new DOM elements are created via the create* methods so
that they report the document they were created through as the owner.

Fixes #4126
Fixes #2962

Reviewed By: @JoelMarcey

Differential Revision: D1660705

Signature: t1:1660705:1415202503:508c9d9850ecff29e714a9e662b1bdf8a35ea3bf
Deal with catching generic exceptions

Summary: These have the same problem that `instanceof` does, that you
can't do `catch (Foo<Generic> $e)` since we don't have reified generics.
So we should do the same hack we do for `instanceof`, setting each of
the type parameters to `Tunresolved []` -- this is clearly better than
setting them to the empty list like we do now, which leads to really
weird error messages like those in the github issue.

We could also just ban generic exceptions altogether, but that seems
like a shortsighted restriction since we may want to add reified generics
at some point in the future.

Fixes https://github.com/facebook/hhvm/issues/3093

Reviewed By: @elgenie

Differential Revision: D1661066

Signature: t1:1661066:1415217726:41297e94d8546ee3aaf83ae4f4010d91ab19ccb0
Fix memory effects bugs with IterInit

Summary: Apparently in the spirit of D1659728

Reviewed By: @alexmalyshev

Differential Revision: D1660146

Signature: t1:1660146:1415159325:f1128d2eae59655df66f1b5d7de6ae484bcc084a
Add integration tests for save / load feature

Reviewed By: @elgenie

Differential Revision: D1618035

Signature: t1:1618035:1415065626:07996d18da574d7c77c60166fba2f35b5f2d88f7
Fix printing of Iter IR opcodes

Summary: This confused me for a while...

Reviewed By: @swtaarrs, @jdelong

Differential Revision: D1659728

Signature: t1:1659728:1415149411:5240901e164b72e4af3ec3d17ee4fa744d8f18b6
Remove dead code: MemoryManager::iterate()

Reviewed By: @jdelong

Differential Revision: D1661730

Signature: t1:1661730:1415223481:951a65c381bd462050835b5fd58d1ee48b743cb8@​override-unit-tests
Give SharedMem hashtables parameterizable keys.

Summary: This allows non-string keys to be stored in the shared heap.

Reviewed By: @jwatzman

Differential Revision: D1654563

Signature: t1:1654563:1415237258:060401039d5a6b99865b0e321dc1b50a8f0f9111