Replace 'operator*' with explicit 'get' method on SmartPointer

Made operator* return reference to the raw type, not pointer. New method 'get()' should be used when raw pointer is needed.

Also removed useless inline modifier from the SmaprtPointer methods and added const modifier to the methods that don't change smart pointer.

Made ~SmartPointerBase protected to avoid accidental calls of the non-virtual base class's destructor.

drive-by: fixed use after free in src/factory.cc

BUG=None
LOG=N
R=alph@chromium.org, svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix trivial error when building with clang.

$ ninja -C out/Debug
...

../../src/d8.cc:171:11: error: unused variable 'MB'
[-Werror,-Wunused-const-variable]
const int MB = 1024 * 1024;
          ^
          1 error generated.

R=titzer@chromium.org, svenpanne@chromium.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Avoid FP exceptions when doing integer division.

BUG=v8:3039
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge remote-tracking branch 'upstream/bleeding_edge' into bleeding_edge