Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Unified Diff: src/js/arraybuffer.js

Issue 2697013009: Move ArrayBuffer.prototype.slice implementation to C++ (Closed)
Patch Set: merge master Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/builtins/builtins-arraybuffer.cc ('k') | src/objects.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/js/arraybuffer.js
diff --git a/src/js/arraybuffer.js b/src/js/arraybuffer.js
deleted file mode 100644
index 9cb93a600c92aed73ff4dd6a55b63541af2ad59f..0000000000000000000000000000000000000000
--- a/src/js/arraybuffer.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-(function(global, utils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-// -------------------------------------------------------------------
-// Imports
-
-var GlobalArrayBuffer = global.ArrayBuffer;
-var MaxSimple;
-var MinSimple;
-var SpeciesConstructor;
-
-utils.Import(function(from) {
- MaxSimple = from.MaxSimple;
- MinSimple = from.MinSimple;
- SpeciesConstructor = from.SpeciesConstructor;
-});
-
-// -------------------------------------------------------------------
-
-// ES6 Draft 15.13.5.5.3
-function ArrayBufferSlice(start, end) {
- if (!IS_ARRAYBUFFER(this)) {
- throw %make_type_error(kIncompatibleMethodReceiver,
- 'ArrayBuffer.prototype.slice', this);
- }
-
- var relativeStart = TO_INTEGER(start);
- if (!IS_UNDEFINED(end)) {
- end = TO_INTEGER(end);
- }
- var first;
- var byte_length = %_ArrayBufferGetByteLength(this);
- if (relativeStart < 0) {
- first = MaxSimple(byte_length + relativeStart, 0);
- } else {
- first = MinSimple(relativeStart, byte_length);
- }
- var relativeEnd = IS_UNDEFINED(end) ? byte_length : end;
- var fin;
- if (relativeEnd < 0) {
- fin = MaxSimple(byte_length + relativeEnd, 0);
- } else {
- fin = MinSimple(relativeEnd, byte_length);
- }
-
- if (fin < first) {
- fin = first;
- }
- var newLen = fin - first;
- var constructor = SpeciesConstructor(this, GlobalArrayBuffer, true);
- var result = new constructor(newLen);
- if (!IS_ARRAYBUFFER(result)) {
- throw %make_type_error(kIncompatibleMethodReceiver,
- 'ArrayBuffer.prototype.slice', result);
- }
- // Checks for detached source/target ArrayBuffers are done inside of
- // %ArrayBufferSliceImpl; the reordering of checks does not violate
- // the spec because all exceptions thrown are TypeErrors.
- if (result === this) {
- throw %make_type_error(kArrayBufferSpeciesThis);
- }
- if (%_ArrayBufferGetByteLength(result) < newLen) {
- throw %make_type_error(kArrayBufferTooShort);
- }
-
- %ArrayBufferSliceImpl(this, result, first, newLen);
- return result;
-}
-
-utils.InstallFunctions(GlobalArrayBuffer.prototype, DONT_ENUM, [
- "slice", ArrayBufferSlice
-]);
-
-})
« no previous file with comments | « src/builtins/builtins-arraybuffer.cc ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698