Blame view

node_modules/webpack/lib/util/Queue.js 639 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  "use strict";
  
  module.exports = class Queue {
  	constructor(items) {
  		this.first = null;
  		this.last = null;
  		this.length = 0;
  		if(items) {
  			for(const item of items) {
  				this.enqueue(item);
  			}
  		}
  	}
  
  	enqueue(item) {
  		const first = this.first;
  		const node = {
  			item,
  			next: null
  		};
  		if(first === null) {
  			this.last = node;
  		} else {
  			first.next = node;
  		}
  		this.first = node;
  		this.length++;
  	}
  
  	dequeue() {
  		const last = this.last;
  		if(last === null)
  			return undefined;
  		const next = last.next;
  		if(next === null) {
  			this.first = null;
  		}
  		this.last = next;
  		this.length--;
  		return last.item;
  	}
  };