- 18 Jul, 2011 6 commits
-
-
ager@chromium.org authored
undefined is passed unchanged as the receiver for strict-mode functions through call and apply. Also, if a strict-mode function is called without an explicit receiver, undefined is passed as the receiver (not the global object as for other functions). R=vegorov@chromium.org BUG=89236 TEST=mjsunit/debug-scopes.js Review URL: http://codereview.chromium.org/7388011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
- Introduce a global Makefile that triggers GYP-based building - Some fixes to .gyp[i] files to make everything work - tools/test-wrapper-gypbuild.py as a temporary solution for easy testing Review URL: http://codereview.chromium.org/7383006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=ager@chromium.org BUG=v8:1543 TEST= Review URL: http://codereview.chromium.org/7391001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
R=jkummerow@chromium.org BUG=v8:1564 Review URL: http://codereview.chromium.org/7398024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
C++'s 'great' idea of implicitly converting an enum to an integral value hit us again, this time resulting in silly (but currently non-harmful) entries in the relocation table. Encapsulated the AST ID recording a bit, which helped a lot to find the culprit. Review URL: http://codereview.chromium.org/7400016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Review URL: http://codereview.chromium.org/7397010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jul, 2011 1 commit
-
-
ager@chromium.org authored
BUG=89462 Review URL: http://codereview.chromium.org/7395012 Patch from Chris Neckar <cdn@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jul, 2011 7 commits
-
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
R=ager@chromium.org Review URL: http://codereview.chromium.org/7383013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7383009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=danno@chromium.org BUG=v8:1559 TEST=test262 Review URL: http://codereview.chromium.org/7368005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=ager@chromium.org BUG=1543 TEST= Review URL: http://codereview.chromium.org/7369001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
TEST=build/gyp_v8 --generator-output=testbuild/ Review URL: http://codereview.chromium.org/7384006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
by replicating changes to SConscript from r8654 to cctest.gyp TEST=cctest compiles with gyp/make. Review URL: http://codereview.chromium.org/7371006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jul, 2011 9 commits
-
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7351017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
BUG=1560 TEST=mjsunit/regress/regress-1560.js Review URL: http://codereview.chromium.org/7366008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7366009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
This allows running cctest from anywhere. I was to rename single-letter variables in my script due to an encountered issue in JSMin (http://code.google.com/p/v8/issues/detail?id=1557). R=svenpanne@chromium.org,sgjesse@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7354027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
While implementing structured clone I found that I need support for detecting and creating objects using the builtin Number, String and Boolean constructors; this CL adds this support. I also need to be able to detect entities of "native object type (e.g., Error)", hence the new IsNativeError() calls. (ref: http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-passing-of-structured-data) Patch by Luke Zarko. Review URL: http://codereview.chromium.org/7344013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7366004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
* src/hydrogen-instructions.h (HClampToUint8): Don't mark as having flexible representation; instead the output is always an Integer32. There is no input representation restriction, so we can still perform input-specific truncation. I tested by looking at the --print-code of var a = PixelArray(1000000) function fill(a,x) { for (var i=0; i<a.len; i++) a[i] = x; } Seems to optimize fine both for double and integer inputs. But perhaps there is a better test, for which the original code does better, and this is a bogus patch. Review URL: http://codereview.chromium.org/7357003 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
We did not dispose the semaphores used in SourceGroup Review URL: http://codereview.chromium.org/7366002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Harmonize naming a bit, x64 was the only platform where Register::from_code was called Register::toRegister. Review URL: http://codereview.chromium.org/7364001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jul, 2011 17 commits
-
-
danno@chromium.org authored
BUG=none TEST=bot greeness Review URL: http://codereview.chromium.org/7357002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
BUG=none TEST=windows build bot works Review URL: http://codereview.chromium.org/7342048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
* src/hydrogen.cc (HInferRepresentation::Analyze): Fix iterative loop over phis; the shortcutting behavior of || appears to be accidental here, causing O(n^2) convergence. Not that it matters much, but hey! While I'm at it, a minor comment fix: * src/hydrogen-instructions.h (EnsureAndPropagateNotMinusZero): Fix a comment about the kinds of instructions that propagate to multiple inputs. BUG= TEST=passes tools/test.py Review URL: http://codereview.chromium.org/7350019 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Implemented on ia32, x64, ARM. Stubbed out with UNIMPLEMENTED on MIPS. BUG=none TEST=unbox-double-arrays.js Review URL: http://codereview.chromium.org/7307030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/7354021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
Invalid loop nesting causes full cleanup of the prototype transitions cache on every GC. R=ager@chromium.org Review URL: http://codereview.chromium.org/7354020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
R=svenpanne@chromium.org BUG=v8:1140 TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-double.js Review URL: http://codereview.chromium.org//7343005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/7356011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Fix bug in compilation of calls with proxy receivers. R=kmillikin@chromium.org,ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7237050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
The only usage of it was in logging tests, I've switched them for using a file. I've left out support for "--logfile=*" for now, as Chromium uses it. Will be removed after the next V8 roll. R=sgjesse@chromium.org BUG=859 TEST=mjsunit/log-* Review URL: http://codereview.chromium.org/7310025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/7351014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Using a C++-style method PrintName (a.k.a. << ;-), things get a lot easier when two unrelated concerns are separated. Stubs don't need a name cache anymore, simpler code while generating the stub name, memory allocation is centralized, etc. Review URL: http://codereview.chromium.org/7342042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=kmillikin@chromium.org,ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7321004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
R=sgjesse@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7353015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Now V8_NO_FAST_TLS needs to be defined to switch off fast tls access on platform which supports it. R=ager@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7350017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This patch just adds a nop after the call to the binary operation stub in optimized code to avoid the patching for the inlined smi case used in the full code generator to kick in if the next instruction generated by the lithium code generator should accidentially enable that. For calls generated by CallCodeGeneric this was already handled on Intel platforms, but missing on ARM. On IA-32 I did also try to check for whether the code containing the call was optimized (patch below), but that caused regressions on some benchmarks. diff --git src/ia32/ic-ia32.cc src/ia32/ic-ia32.cc index 5f143b1..f70e208 100644 --- src/ia32/ic-ia32.cc +++ src/ia32/ic-ia32.cc @@ -1603,12 +1603,18 @@ void CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) { // Activate inlined smi code. if (previous_state == UNINITIALIZED) { - PatchInlinedSmiCode(address()); + PatchInlinedSmiCode(address(), isolate()); } } -void PatchInlinedSmiCode(Address address) { +void PatchInlinedSmiCode(Address address, Isolate* isolate) { + // Never patch in optimized code. + Code* code = isolate->pc_to_code_cache()->GetCacheEntry(address)->code; + if (code->kind() == Code::OPTIMIZED_FUNCTION) { + return; + } + // The address of the instruction following the call. Address test_instruction_address = address + Assembler::kCallTargetAddressOffset; diff --git src/ic.cc src/ic.cc index f70f75a..62e79da 100644 --- src/ic.cc +++ src/ic.cc @@ -2384,7 +2384,7 @@ RUNTIME_FUNCTION(MaybeObject*, BinaryOp_Patch) { // Activate inlined smi code. if (previous_type == BinaryOpIC::UNINITIALIZED) { - PatchInlinedSmiCode(ic.address()); + PatchInlinedSmiCode(ic.address(), isolate); } } diff --git src/ic.h src/ic.h index 11c2e3a..9ef4b20 100644 --- src/ic.h +++ src/ic.h @@ -721,7 +721,7 @@ class CompareIC: public IC { }; // Helper for BinaryOpIC and CompareIC. -void PatchInlinedSmiCode(Address address); +void PatchInlinedSmiCode(Address address, Isolate* isolate); } } // namespace v8::internal R=danno@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7350015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-